tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: ClassNotFoundException: JaccProvider$Factory
Date Wed, 16 Jan 2008 22:16:49 GMT

On Jan 16, 2008, at 12:15 PM, Dain Sundstrom wrote:

> Caused by:  
> java 
> .lang 
> .ClassNotFoundException:org.apache.openejb.core.security.JaccProvider 
> $Factory
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[...]
>       at java.lang.Class.forName(Class.java:247)
>       at  
> javax 
> .security 
> .jacc 
> .PolicyConfigurationFactory 
> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:131)
>       ... 44 more
>
> But, if you look at our spec code for  
> javax.security.jacc.PolicyConfigurationFactory, there is no code on  
> line 131, and after browsing the full history of that file, there  
> has never been a call to Class.forName on line 247.  Do you have a  
> second (possibly one from Sun), implementation of the JACC spec in  
> your lib directory or one of your applications?

That's an interesting possibility.  Could be there is another jar in  
your classpath providing the jacc api and it randomly ends up before  
ours (and presumably it's blowing up in it's static initializer).

Looks like you're in maven2/surefire when this happens.  It should be  
possible to get a list of the jars in your classpath via the code I  
posted earlier (surefire's classloader is a subclass of  
URLClassLoader).  Then you should be able to look in them and see how  
many copies copy of javax/security/jacc/ 
PolicyConfigurationFactory.class you have.

I've got a script for grepping through jars that might be handy:
   http://docs.codehaus.org/display/ninja/grepjar

-David

> On Jan 16, 2008, at 1:34 AM, Martin Vysny wrote:
>
>> Hi guys,
>> can you please help me with this one? Rarely, the OpenEJB startup
>> fails with the exception ClassNotFoundException: JaccProvider$Factory
>> (full stacktrace is below). The interesting point is, that you can  
>> just
>> rerun the OpenEJB and the server would start normally. We are using
>> OpenEJB 3.0-beta-1, and I could swear that the
>> org.apache.openejb.core.security.JaccProvider$Factory is on the
>> classpath. We are using java6 x86 on linux:
>> java version "1.6.0_03"
>> Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
>> Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
>> We are not using any special classloader hierarchy (well, not before
>> OpenEJB is fully started). Perhaps a java bug?
>> Thanks!
>> Martin
>>
>>
>> PolicyConfigurationFactory class not found: JACC:Error
>> PolicyConfigurationFactory : cannot find class :
>> org.apache.openejb.core.security.JaccProvider$Factory
>>       at
>> org 
>> .apache 
>> .openejb 
>> .assembler.classic.Assembler.createApplication(Assembler.java:558)
>>       at
>> org 
>> .apache 
>> .openejb 
>> .assembler.classic.Assembler.buildContainerSystem(Assembler.java:299)
>>       at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
>> 207)
>>       at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:149)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:293)
>>       at org.apache.openejb.OpenEJB.init(OpenEJB.java:272)
>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>       at
>> sun 
>> .reflect 
>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>       at
>> sun 
>> .reflect 
>> .DelegatingMethodAccessorImpl 
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>       at
>> org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java: 
>> 36)
>>       at
>> org 
>> .apache 
>> .openejb 
>> .client 
>> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:59)
>>       at
>> org 
>> .apache 
>> .openejb 
>> .client 
>> .LocalInitialContextFactory 
>> .getInitialContext(LocalInitialContextFactory.java:45)
>>       at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java: 
>> 667)
>>       at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java: 
>> 288)
>>       at javax.naming.InitialContext.init(InitialContext.java:223)
>>       at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>       at
>> com 
>> .whitestein 
>> .fe 
>> .embedded 
>> .launcher 
>> .OpenEjbAndJettyLauncher.initOpenEJB(OpenEjbAndJettyLauncher.java: 
>> 223)
>>       at
>> com 
>> .whitestein 
>> .fe 
>> .embedded 
>> .launcher 
>> .OpenEjbAndJettyLauncher.launch(OpenEjbAndJettyLauncher.java:146)
>>       at
>> com.whitestein.fe.embedded.launcher.Launcher.launch(Launcher.java: 
>> 107)
>>       at com.whitestein.fe.it.cal.CalUtils.newComm(CalUtils.java:45)
>>       at
>> com.whitestein.fe.it.cal.AbstractCalTest.setUp(AbstractCalTest.java: 
>> 35)
>>       at junit.framework.TestCase.runBare(TestCase.java:125)
>>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>>       at junit.framework.TestResult.run(TestResult.java:109)
>>       at junit.framework.TestCase.run(TestCase.java:118)
>>       at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>       at junit.framework.TestSuite.run(TestSuite.java:203)
>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>       at
>> sun 
>> .reflect 
>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>       at
>> sun 
>> .reflect 
>> .DelegatingMethodAccessorImpl 
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>       at
>> org 
>> .apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java: 
>> 213)
>>       at
>> org 
>> .apache 
>> .maven 
>> .surefire 
>> .suite 
>> .AbstractDirectoryTestSuite 
>> .executeTestSet(AbstractDirectoryTestSuite.java:138)
>>       at
>> org 
>> .apache 
>> .maven 
>> .surefire 
>> .suite 
>> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java: 
>> 125)
>>       at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>       at
>> sun 
>> .reflect 
>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>       at
>> sun 
>> .reflect 
>> .DelegatingMethodAccessorImpl 
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>       at
>> org 
>> .apache 
>> .maven 
>> .surefire 
>> .booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:290)
>>       at
>> org 
>> .apache 
>> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:818)
>> Caused by: org.apache.openejb.OpenEJBException:
>> PolicyConfigurationFactory class not found: JACC:Error
>> PolicyConfigurationFactory : cannot find class :
>> org.apache.openejb.core.security.JaccProvider$Factory
>>       at
>> org 
>> .apache 
>> .openejb 
>> .assembler 
>> .classic.JaccPermissionsBuilder.install(JaccPermissionsBuilder.java: 
>> 62)
>>       at
>> org 
>> .apache 
>> .openejb 
>> .assembler.classic.Assembler.createApplication(Assembler.java:436)
>>       ... 42 more
>> Caused by: java.lang.ClassNotFoundException: JACC:Error
>> PolicyConfigurationFactory : cannot find class :
>> org.apache.openejb.core.security.JaccProvider$Factory
>>       at
>> javax 
>> .security 
>> .jacc 
>> .PolicyConfigurationFactory 
>> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:143)
>>       at
>> org 
>> .apache 
>> .openejb 
>> .assembler 
>> .classic.JaccPermissionsBuilder.install(JaccPermissionsBuilder.java: 
>> 48)
>>       ... 43 more
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.openejb.core.security.JaccProvider$Factory
>>       at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>       at java.security.AccessController.doPrivileged(Native Method)
>>       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>       at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: 
>> 276)
>>       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java: 
>> 319)
>>       at java.lang.Class.forName0(Native Method)
>>       at java.lang.Class.forName(Class.java:247)
>>       at
>> javax 
>> .security 
>> .jacc 
>> .PolicyConfigurationFactory 
>> .getPolicyConfigurationFactory(PolicyConfigurationFactory.java:131)
>>       ... 44 more
>>
>
>


Mime
View raw message