You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Asankha C. Perera (JIRA)" <ji...@apache.org> on 2009/08/27 18:04:59 UTC

[jira] Commented: (WSCOMMONS-498) JMS ServiceTaskManager isn't J2EE compliant (setExceptionListener not permitted) and fails on WebSphere AS 6.1

    [ https://issues.apache.org/jira/browse/WSCOMMONS-498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748414#action_12748414 ] 

Asankha C. Perera commented on WSCOMMONS-498:
---------------------------------------------

Hi Florian

Oops, we've missed the fact that setExceptionListener was not allowed by the latest JEE spec. I think the solution is to just not set it at line 794, and to make calls to the onException() method (i.e. its effective code) from 'relevant' locations where JMSExceptions are caught and handled. Would you be able to try that and test it against this later version of WebSphere? If you could then provide a patch, we will commit it ASAP

thanks
asankha

> JMS ServiceTaskManager isn't J2EE compliant (setExceptionListener not permitted) and fails on WebSphere AS 6.1
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: WSCOMMONS-498
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-498
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: Transports 1.0
>         Environment: J2RE 1.5.0 IBM J9 2.3 - Maven 2.2.1 - WebSphere Application Server 6.1 - Axis2 1.5
>            Reporter: Florian Minjat
>
> 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

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.