|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ 6.0.2.4 with Mule ESB 1.3.3 |
« View previous topic :: View next topic » |
Author |
Message
|
zeitgeber |
Posted: Tue Jul 14, 2009 3:59 pm Post subject: MQ 6.0.2.4 with Mule ESB 1.3.3 |
|
|
Newbie
Joined: 14 Jul 2009 Posts: 2
|
I have Mule ESB being the client of MQ.
I had Mule ESB 1.3.3 working perfectly with MQ 5.3.
However, when I upgraded to MQ 6.0.2.4, suddenly, Mule could no longer establish connection to MQ.
I copied across the following MQ 6.0.2.4 client jars from /opt/mqm/java/lib
onto the classpath of Mule 1.3.3 :
com.ibm.mq.jar (452,682 bytes)
com.ibm.mqjms.jar (1,288,252 bytes)
dhbcore.jar (1,997,216 bytes)
but when I try to start Mule, I got this error in the Mule log :
Root Exception stack trace:
com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object. Root exception is java.lang.NoSuchFieldError: com.ibm.mqservices.Trace: field isOn not found
at com.ibm.mq.PoolScavenger.<clinit>(PoolScavenger.java:79)
at com.ibm.mq.MQSimpleConnectionManager.<init>(MQSimpleConnectionManager.java:49)
at com.ibm.mq.MQEnvironment.<clinit>(MQEnvironment.java:490)
at com.ibm.mq.jms.services.ConfigEnvironment.<clinit>(ConfigEnvironment.java:190)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:260)
at com.ibm.mq.jms.MQConnectionFactory$1.run(MQConnectionFactory.java:637)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java:287)
at com.ibm.mq.jms.MQConnectionFactory.<clinit>(MQConnectionFactory.java:630)
at java.lang.Class.forName1(Native Method)
at java.lang.Class.forName(Class.java:180)
at com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory.class$(MQXAQueueConnectionFactoryFactory.java:54)
at com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory.getObjectInstance(MQXAQueueConnectionFactoryFactory.java:54)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:314)
at com.ibm.ejs.jms.JMSConnectionFactoryFactory.getObjectInstance(JMSConnectionFactoryFactory.java:81)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:314)
at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:874)
at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:681)
at com.ibm.ws.naming.jndicos.CNContextImpl.processResolveResults(CNContextImpl.java:1969)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1824)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1737)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1444)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1324)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:144)
at javax.naming.InitialContext.lookup(InitialContext.java:361)
at org.mule.providers.jms.JmsConnector.createConnectionFactory(JmsConnector.java:196)
at org.mule.providers.jms.JmsConnector.doConnect(JmsConnector.java:325)
at org.mule.providers.AbstractConnector.connect(AbstractConnector.java:993)
at org.mule.providers.SingleAttemptConnectionStrategy.doConnect(SingleAttemptConnectionStrategy.java:29)
at org.mule.providers.AbstractConnectionStrategy.connect(AbstractConnectionStrategy.java:86)
at org.mule.providers.AbstractConnector.connect(AbstractConnector.java:983)
at org.mule.providers.SingleAttemptConnectionStrategy.doConnect(SingleAttemptConnectionStrategy.java:29)
at org.mule.providers.AbstractConnectionStrategy.connect(AbstractConnectionStrategy.java:86)
at org.mule.providers.AbstractConnector.startConnector(AbstractConnector.java:324)
at org.mule.MuleManager.startConnectors(MuleManager.java:901)
at org.mule.MuleManager.start(MuleManager.java:854)
at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:247)
at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:208)
at org.mule.MuleServer.initialize(MuleServer.java:268)
at org.mule.MuleServer.run(MuleServer.java:181)
at org.mule.MuleServer.start(MuleServer.java:169)
at org.mule.MuleServer.main(MuleServer.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:5
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:292)
at java.lang.Thread.run(Thread.java:571)
It appears that PoolScavenger could not find the field Trace.isOn via reflection.
I decompiled Trace.class and I could see the field exists.
Note: Both PoolScavenger.class and Trace.class exist in com.ibm.mq.jar
Any ideas ? |
|
Back to top |
|
 |
zeitgeber |
Posted: Tue Jul 14, 2009 4:19 pm Post subject: |
|
|
Newbie
Joined: 14 Jul 2009 Posts: 2
|
I found the problem. Stupid me. I had com.ibm.mqbind.jar (39,459 bytes) in the classpath of Mule, and that jar also contains Trace.class which didn't have the isOn field. I simply deleted that jar and Mule is happy again. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jul 14, 2009 7:46 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You should not just copy some mq jars. You should rather install the client and then reference everything under <mqinstall>/java/lib.
This way when you need to upgrade the mq libraries you can do it with a minimum disruption to your app.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|