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