Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Transports 1.0.0
-
None
-
None
-
J2RE 1.5.0 IBM J9 2.3 - Maven 2.2.1 - WebSphere Application Server 6.1 - Axis2 1.5
Description
Hi,
I'm trying to make a sample web application providing an Axis2 WebService over JMS using the last version of Axis2 (1.5).
After some (long) searches for the transport-jms package which was removed from the kernel jar, I ended on the axis2-transport-jms trunk code from this SVN repo: http://svn.apache.org/repos/asf/webservices/commons/trunk/modules/transport/modules/jms .
But this code fails to run on IBM WebSphere AS 6.1 with the following error during the method createConnection() of ServiceTaskManager (revision 808426):
[8/27/09 11:59:16:619 CEST] 0000002f SystemOut O ERROR ServiceTaskManager - Error acquiring a JMS connection to : mq/Z81REFAPP_QCF using JNDI properties :
{transport.jms.ConnectionFactory=refappQueueConnectionFactory, transport.jms.ConnectionFactoryType=queue, ServiceClass=com.volvo.ras.ws.p.RefAppService}javax.jms.IllegalStateException: Method setExceptionListener not permitted
at com.ibm.ejs.jms.JMSCMUtils.methodNotPermittedException(JMSCMUtils.java:253)
at com.ibm.ejs.jms.JMSConnectionHandle.checkRestrictedMethod(JMSConnectionHandle.java:805)
at com.ibm.ejs.jms.JMSConnectionHandle.setExceptionListener(JMSConnectionHandle.java:323)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConnection(ServiceTaskManager.java:794)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.getConnection(ServiceTaskManager.java:673)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.receiveMessage(ServiceTaskManager.java:472)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:405)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:810)
[8/27/09 11:59:16:619 CEST] 0000002f SystemOut O ERROR NativeWorkerPool - Uncaught exception
org.apache.axis2.transport.jms.AxisJMSException: Error acquiring a JMS connection to : mq/Z81REFAPP_QCF using JNDI properties : {transport.jms.ConnectionFactory=refappQueueConnectionFactory, transport.jms.ConnectionFactoryType=queue, ServiceClass=com.volvo.ras.ws.p.RefAppService}
at org.apache.axis2.transport.jms.ServiceTaskManager.handleException(ServiceTaskManager.java:959)
at org.apache.axis2.transport.jms.ServiceTaskManager.access$700(ServiceTaskManager.java:48)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConnection(ServiceTaskManager.java:799)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.getConnection(ServiceTaskManager.java:673)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.receiveMessage(ServiceTaskManager.java:472)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:405)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:810)
Caused by: javax.jms.IllegalStateException: Method setExceptionListener not permitted
at com.ibm.ejs.jms.JMSCMUtils.methodNotPermittedException(JMSCMUtils.java:253)
at com.ibm.ejs.jms.JMSConnectionHandle.checkRestrictedMethod(JMSConnectionHandle.java:805)
at com.ibm.ejs.jms.JMSConnectionHandle.setExceptionListener(JMSConnectionHandle.java:323)
at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConnection(ServiceTaskManager.java:794)
... 7 more
This is due to the call to setExceptionListener. As documented in the links below, this is not J2EE compliant, and WebSphere does not allow this code.
http://www-01.ibm.com/support/docview.wss?uid=swg21114239
I have no idea how to change the code to reinitialize connections on failure. But at least the exception should be catched to prevent complete failure.
BTW I first tried with the code from the axis2-kernel-1.4.1.jar and ended with almost the same problem but with setMessageListener. I found this mail with the correction which lead me to the current SVN code: http://mail-archives.apache.org/mod_mbox/ws-axis-user/200812.mbox/%3C493D6D06.3060301@apache.org%3E
Regards,
Florian