geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick McGuire <rick...@gmail.com>
Subject Re: Puzzling class loading problem [long]
Date Thu, 21 Sep 2006 21:38:25 GMT
David Jencks wrote:
> It looks to me as if you missed updating your -sun copies from 
> GERONIMO-2398 which created the client-transaction config.
No, I had updated them for that, which why this was so puzzling.

>
> 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.
This is how I ended up fixing the problem.  I kept the classpath entries 
in the *-system configs the way they are, then in the yoko configs, 
created a new set that included the yoko jar files.  This was a much 
simpler solution, and avoided all of the classloading problems.  I've 
now got a build with both yoko and sun *-corba configs.  I've got a 
couple of other things to clean up first, then I'll see what needs to be 
tweaked to allow one or the other to be selected in a single assembly.

Rick

>
> 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.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)

>>
>>    at 
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)

>>
>>    at 
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)

>>
>>    at 
>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(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.buildConfiguration(ServiceConfigBuilder.java:218)

>>
>>    at 
>> org.apache.geronimo.deployment.service.ServiceConfigBuilder.buildConfiguration(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