geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <djen...@apache.org>
Subject Re: Puzzling class loading problem [long]
Date Thu, 21 Sep 2006 21:02:29 GMT
It looks to me as if you missed updating your -sun copies from  
GERONIMO-2398 which created the client-transaction config.

I have 2 suggestions:
- try using the artifact_aliases.properties to replace client-system  
with client-system-sun.  Then you won't need copies of all the other  
stuff in between that and client-corba.  You may find the bugs I  
think must be in the use of artifact_aliases :-) which will be a good  
thing.

- try using the same *-system configs for yoko and sun, and use  
different assemblies that do or don't include the yoko jars.  Through  
frequent painful experience I have convinced myself that the server  
has no problem starting when the jars listed in the *-system manifest  
classpath are completely missing.

- and a question.... can we include these endorsed jars in the *- 
corba classloaders rather than the *-system classloaders?  Neither  
one is a very primordial classloader, so I would think either one  
would work.

Hope this helps, sorry I didn't get to looking at this sooner.

thanks
david jencks

On Sep 21, 2006, at 2:45 AM, Rick McGuire wrote:

> I've got a class loading problem during the build that's driving me  
> nuts.  I need to give a bit of background info first, so bear with me.
> The situation:
>
> I'm trying to get Geronimo to build with one set of client/j2ee  
> configs that use the Yoko ORB, and one set using the Sun ORB.  I  
> got the existing configs converted to the Yoko ORB and building,  
> and now I'm working on a set of configs for the Sun ORB.  To do  
> this, I made new client-corba and j2ee-corba configs.  The endorsed  
> classes are placed on the classpath in j2ee-system and client- 
> system, so I needed to create sun-specific configs for these two,  
> plus client, server, client-security, and j2ee-security.  The  
> changes are very minimal.  The *-system pom.xml files just remove  
> the yoko class path dependencies, the *-corba jars switch the  
> ORBConfiguration GBean to the sun version.  The rest of the changes  
> are just to the artifact ids and parent configs.  For example, the  
> only difference between the client-sun and client configs is the  
> artifact name of "client-sun" and its dependency on "client-system- 
> sun" instead of "client-system".
> All of this was building cleaning on Tuesday afternoon.  On  
> Wednesday morning, I did an svn update to keep up with changes, and  
> now I'm getting a build error due to a class loading problem while  
> trying to build either client-security-sun or j2ee-security-sun.   
> The yoko versions of these build fine.  Here's the error:
>
> [INFO]  
> ---------------------------------------------------------------------- 
> --
> [ERROR] BUILD ERROR
> [INFO]  
> ---------------------------------------------------------------------- 
> --
> [INFO] org.apache.geronimo.gbean.InvalidConfigurationException:  
> Could not find getGBeanInfo method on  
> org.apache.geronimo.security.keystore.FileKeystoreManager
>
> org/apache/geronimo/util/asn1/x509/X509Name
> [INFO]  
> ---------------------------------------------------------------------- 
> --
> [DEBUG] Trace
> org.apache.maven.lifecycle.LifecycleExecutionException:  
> org.apache.geronimo.gbean.InvalidConfigurationException: Could not  
> find getGBeanInfo method on  
> org.apache.geronimo.security.keystore.FileKeystoreManager
>    at  
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals 
> (DefaultLifecycleExecutor.java:559)
>    at  
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLif 
> ecycle(DefaultLifecycleExecutor.java:475)
>    at  
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal 
> (DefaultLifecycleExecutor.java:454)
>    at  
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHand 
> leFailures(DefaultLifecycleExecutor.java:306)
>    at  
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegment 
> s(DefaultLifecycleExecutor.java:273)
>    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute 
> (DefaultLifecycleExecutor.java:140)
>    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
>    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
>    at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
>    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:324)
>    at org.codehaus.classworlds.Launcher.launchEnhanced 
> (Launcher.java:315)
>    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>    at org.codehaus.classworlds.Launcher.mainWithExitCode 
> (Launcher.java:430)
>    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.maven.plugin.MojoExecutionException:  
> org.apache.geronimo.gbean.InvalidConfigurationException: Could not  
> find getGBeanInfo method on  
> org.apache.geronimo.security.keystore.FileKeystoreManager
>    at org.apache.geronimo.genesis.MojoSupport.execute 
> (MojoSupport.java:107)
>    at org.apache.maven.plugin.DefaultPluginManager.executeMojo 
> (DefaultPluginManager.java:412)
>    at  
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals 
> (DefaultLifecycleExecutor.java:534)
>    ... 16 more
> Caused by: org.apache.geronimo.common.DeploymentException:  
> org.apache.geronimo.gbean.InvalidConfigurationException: Could not  
> find getGBeanInfo method on  
> org.apache.geronimo.security.keystore.FileKeystoreManager
>    at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java: 
> 383)
>    at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$ 
> $734a235d.invoke(<generated>)
>    at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>    at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
> (FastMethodInvoker.java:38)
>    at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
> (GBeanOperation.java:122)
>    at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:855)
>    at org.apache.geronimo.kernel.basic.BasicKernel.invoke 
> (BasicKernel.java:239)
>    at org.apache.geronimo.plugin.car.PackageMojo.invokeDeployer 
> (PackageMojo.java:569)
>    at org.apache.geronimo.plugin.car.PackageMojo.buildPackage 
> (PackageMojo.java:408)
>    at org.apache.geronimo.plugin.car.PackageMojo.doExecute 
> (PackageMojo.java:245)
>    at org.apache.geronimo.genesis.MojoSupport.execute 
> (MojoSupport.java:92)
>    ... 18 more
> Caused by: org.apache.geronimo.gbean.InvalidConfigurationException:  
> Could not find getGBeanInfo method on  
> org.apache.geronimo.security.keystore.FileKeystoreManager
>    at org.apache.geronimo.gbean.GBeanInfo.getGBeanInfo 
> (GBeanInfo.java:75)
>    at  
> org.apache.geronimo.deployment.service.GBeanBuilder.addGBeanData 
> (GBeanBuilder.java:109)
>    at org.apache.geronimo.deployment.service.GBeanBuilder.build 
> (GBeanBuilder.java:99)
>    at org.apache.geronimo.deployment.service.GBeanBuilder$ 
> $FastClassByCGLIB$$65102f86.invoke(<generated>)
>    at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>    at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
> (FastMethodInvoker.java:38)
>    at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
> (GBeanOperation.java:122)
>    at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:820)
>    at org.apache.geronimo.gbean.runtime.RawInvoker.invoke 
> (RawInvoker.java:57)
>    at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke 
> (RawOperationInvoker.java:35)
>    at  
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept 
> (ProxyMethodInterceptor.java:96)
>    at org.apache.geronimo.deployment.NamespaceDrivenBuilder$ 
> $EnhancerByCGLIB$$cc62fbab.build(<generated>)
>    at  
> org.apache.geronimo.deployment.NamespaceDrivenBuilderCollection.build( 
> NamespaceDrivenBuilderCollection.java:82)
>    at  
> org.apache.geronimo.deployment.service.ServiceConfigBuilder.buildConfi 
> guration(ServiceConfigBuilder.java:218)
>    at  
> org.apache.geronimo.deployment.service.ServiceConfigBuilder.buildConfi 
> guration(ServiceConfigBuilder.java:177)
>    at org.apache.geronimo.deployment.service.ServiceConfigBuilder$ 
> $FastClassByCGLIB$$9f173be6.invoke(<generated>)
>    at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>    at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
> (FastMethodInvoker.java:38)
>    at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
> (GBeanOperation.java:122)
>    at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:820)
>    at org.apache.geronimo.gbean.runtime.RawInvoker.invoke 
> (RawInvoker.java:57)
>    at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke 
> (RawOperationInvoker.java:35)
>    at  
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept 
> (ProxyMethodInterceptor.java:96)
>    at org.apache.geronimo.deployment.ConfigurationBuilder$ 
> $EnhancerByCGLIB$$2c071e7c.buildConfiguration(<generated>)
>    at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java: 
> 302)
>    ... 28 more
> Caused by: java.lang.NoClassDefFoundError: org/apache/geronimo/util/ 
> asn1/x509/X509Name
>    at java.lang.Class.getDeclaredMethods0(Native Method)
>    at java.lang.Class.privateGetDeclaredMethods(Class.java:1655)
>    at java.lang.Class.getDeclaredMethod(Class.java:1262)
>    at org.apache.geronimo.gbean.GBeanInfo.getGBeanInfo 
> (GBeanInfo.java:65)
>    ... 52 more
>
> This is a failure to resolve X509Name, which is in the geronimo- 
> util package.  I have checked, double-checked, and triple-checked  
> the poms and the plans for all of these configs, and they should  
> have exactly the same dependencies.  However, when I build client- 
> security and client-security-sun with the -X option, I'm able to  
> see a difference when it processes the client-system-sun parent  
> configuration:
>
> Parent configurations:
>     org.apache.geronimo.configs/client-system-sun/1.2-SNAPSHOT/car
> ClassPath:
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> security/1.2-SNAPSHOT/geronimo-security-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee- 
> connector_1.5_spec/1.0.1/geronimo-j2ee-connector_1.5_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> axis/1.2-SNAPSHOT/geronimo-axis-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/axis/axis/1.4/axis-1.4.jar
>     file:/c:/.m2/repository/commons-discovery/commons-discovery/0.2/ 
> commons-discovery-0.2.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> javamail_1.3.1_spec/1.2-SNAPSHOT/geronimo-javamail_1.3.1_spec-1.2- 
> SNAPSHOT.jar
>     file:/c:/.m2/repository/wsdl4j/wsdl4j/1.5.2/wsdl4j-1.5.2.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> activation/1.2-SNAPSHOT/geronimo-activation-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> ejb_2.1_spec/1.0.1/geronimo-ejb_2.1_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> transaction/1.2-SNAPSHOT/geronimo-transaction-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> naming/1.2-SNAPSHOT/geronimo-naming-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> management/1.2-SNAPSHOT/geronimo-management-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> saaj_1.1_spec/1.0.1/geronimo-saaj_1.1_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jaxrpc_1.1_spec/1.0.1/geronimo-jaxrpc_1.1_spec-1.0.1.jar
>     file:/c:/.m2/repository/concurrent/concurrent/1.3.4/ 
> concurrent-1.3.4.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee- 
> jacc_1.0_spec/1.0.1/geronimo-j2ee-jacc_1.0_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee- 
> management_1.0_spec/1.0.1/geronimo-j2ee-management_1.0_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/openejb/openejb-core/2.2.1-SNAPSHOT/ 
> openejb-core-2.2.1-SNAPSHOT.jar
>     file:/c:/.m2/repository/geronimo-spec/geronimo-spec-corba/1.0/ 
> geronimo-spec-corba-1.0.jar
>     file:/c:/.m2/repository/tranql/tranql/1.4-SNAPSHOT/tranql-1.4- 
> SNAPSHOT.jar
>     file:/c:/.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar
>     file:/c:/.m2/repository/backport-util-concurrent/backport-util- 
> concurrent/2.2/backport-util-concurrent-2.2.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> j2ee/1.2-SNAPSHOT/geronimo-j2ee-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> connector/1.2-SNAPSHOT/geronimo-connector-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> core/1.2-SNAPSHOT/geronimo-core-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> webservices/1.2-SNAPSHOT/geronimo-webservices-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jaxr_1.0_spec/1.0.1/geronimo-jaxr_1.0_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> client/1.2-SNAPSHOT/geronimo-client-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jms_1.1_spec/1.0.1/geronimo-jms_1.1_spec-1.0.1.jar
>
> When compared with the client-security build,
>
>     org.apache.geronimo.configs/client-system/1.2-SNAPSHOT/car
> ClassPath:
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> security/1.2-SNAPSHOT/geronimo-security-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee- 
> connector_1.5_spec/1.0.1/geronimo-j2ee-connector_1.5_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> axis/1.2-SNAPSHOT/geronimo-axis-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/axis/axis/1.4/axis-1.4.jar
>     file:/c:/.m2/repository/commons-discovery/commons-discovery/0.2/ 
> commons-discovery-0.2.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> javamail_1.3.1_spec/1.2-SNAPSHOT/geronimo-javamail_1.3.1_spec-1.2- 
> SNAPSHOT.jar
>     file:/c:/.m2/repository/wsdl4j/wsdl4j/1.5.2/wsdl4j-1.5.2.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> activation/1.2-SNAPSHOT/geronimo-activation-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> ejb_2.1_spec/1.0.1/geronimo-ejb_2.1_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> util/1.2-SNAPSHOT/geronimo-util-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> naming/1.2-SNAPSHOT/geronimo-naming-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> activation_1.0.2_spec/1.1/geronimo-activation_1.0.2_spec-1.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> management/1.2-SNAPSHOT/geronimo-management-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> saaj_1.1_spec/1.0.1/geronimo-saaj_1.1_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jaxrpc_1.1_spec/1.0.1/geronimo-jaxrpc_1.1_spec-1.0.1.jar
>     file:/c:/.m2/repository/concurrent/concurrent/1.3.4/ 
> concurrent-1.3.4.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee- 
> jacc_1.0_spec/1.0.1/geronimo-j2ee-jacc_1.0_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee- 
> management_1.0_spec/1.0.1/geronimo-j2ee-management_1.0_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jta_1.0.1B_spec/1.0.1/geronimo-jta_1.0.1B_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/openejb/openejb-core/2.2.1-SNAPSHOT/ 
> openejb-core-2.2.1-SNAPSHOT.jar
>     file:/c:/.m2/repository/geronimo-spec/geronimo-spec-corba/1.0/ 
> geronimo-spec-corba-1.0.jar
>     file:/c:/.m2/repository/tranql/tranql/1.4-SNAPSHOT/tranql-1.4- 
> SNAPSHOT.jar
>     file:/c:/.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> j2ee/1.2-SNAPSHOT/geronimo-j2ee-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/backport-util-concurrent/backport-util- 
> concurrent/2.2/backport-util-concurrent-2.2.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> core/1.2-SNAPSHOT/geronimo-core-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> webservices/1.2-SNAPSHOT/geronimo-webservices-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jaxr_1.0_spec/1.0.1/geronimo-jaxr_1.0_spec-1.0.1.jar
>     file:/c:/.m2/repository/org/apache/geronimo/modules/geronimo- 
> client/1.2-SNAPSHOT/geronimo-client-1.2-SNAPSHOT.jar
>     file:/c:/.m2/repository/org/apache/geronimo/specs/geronimo- 
> jms_1.1_spec/1.0.1/geronimo-jms_1.1_spec-1.0.1.jar
>
> I see that the client-security-sun config is missing the geronimo- 
> util jar file from the classpath, but is including geronimo- 
> transaction and geronimo-connector, which the don't appear on the  
> client-security classpath.
> I'm at a complete loss to explain why these are different.  These  
> configs should be using the same set of dependencies except for the  
> yoko jars, but they're somehow ending up with different  
> classpaths.  I'm grasping at straws on this one now, so any  
> suggestions are greatly appreciated.
>
> Rick
>
>
>


Mime
View raw message