On Jul 16, 2009, at 5:03 AM, Fredrik Jonson wrote:
Hi again,
I haven't given up on my little project to replace the old and not
so solid
ActiveMQ 4.1.2 in geronimo 2.1.4 with ActiveMQ 5.2.0. Not yet anyway.
Right now I've replaced activem-broker and geronimo-activemq-ra with
two custom
packages. And with these packages installed I can start geronimo
just fine. I'm
using a modified Geronimo 2.1.4 Jetty 6 JavaEE.
Unfortunately when I try to deploy an ear that contains MDB:s I get
an odd
class cast exception:
2009-07-16 13:46:56,854 ERROR [GBeanInstanceState] Error while
starting;
GBean is now in the FAILED state: abstractName="com.example/custom-
server-ear/
1.0.1-SNAPSHOT/ear?J2EEApplication=com.example/custom-server-
ear/
1.0.1-SNAPSHOT/ear,JCAResource=jms-resources,ResourceAdapter=
jms-resources,ResourceAdapterModule=jms-resources,j2eeType=
JCAResourceAdapter,name=jms-resources"
java.lang.ClassCastException:
org.apache.activemq.ra.ActiveMQResourceAdapter cannot be cast to
javax.resource.spi.ResourceAdapter
at
org
.apache
.geronimo
.connector.ResourceAdapterWrapper.<init>(ResourceAdapterWrapper.java:
79)
at
org
.apache
.geronimo
.connector
.ResourceAdapterWrapperGBean.<init>(ResourceAdapterWrapperGBean.java:
51)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun
.reflect
.NativeConstructorAccessorImpl
.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun
.reflect
.DelegatingConstructorAccessorImpl
.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:
513)
at
org
.apache
.geronimo
.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:948)
at
org
.apache
.geronimo
.gbean
.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:
268)
at
org
.apache
.geronimo
.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
at
org
.apache
.geronimo
.gbean
.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:
124)
at
org
.apache
.geronimo
.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
at
org
.apache
.geronimo
.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
at
org
.apache
.geronimo
.kernel
.config
.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:
456)
at
org
.apache
.geronimo
.kernel
.config
.KernelConfigurationManager.start(KernelConfigurationManager.java:188)
at
org
.apache
.geronimo
.kernel
.config
.SimpleConfigurationManager
.startConfiguration(SimpleConfigurationManager.java:563)
at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org
.apache
.geronimo
.gbean
.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:
34)
at
org
.apache
.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at
org
.apache
.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832)
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.gbean.GBeanLifecycle$$EnhancerByCGLIB$
$8e753450.startConfiguration(<generated>)
at
org
.apache
.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:
162)
at
org
.apache
.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:79)
at
org
.apache
.geronimo
.kernel
.util
.MainConfigurationBootstrapper
.main(MainConfigurationBootstrapper.java:45)
at
org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:67)
at
org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
Does anyone have a hunch what might be happening here?
My guess would be that
- you are using the amq 5.2 rar as supplied by amq, which contains
waaaay too much stuff including the j2ca spec jar
- the classloader for the rar does not have the jee-specs plugin as a
parent (or, rather, ancestor)
So the rar is loading the javax.resource classes in its own
classloader and openejb is trying to load them in the jee-specs
classloader.
Can I ask why you aren't using 2.2-SNAPSHOT and/or porting our amq 5.x
integration back to 2.1.x? AMQ 5.2 did have some tck issues in
geronimo which is why we are using 5.3-SNAPSHOT and hoping for a
imminent 5.3 release.
thanks
david jencks
--
Fredrik Jonson