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

Florian Minjat commented on WSCOMMONS-498:
------------------------------------------

Hi again,
I looked at the code and I don't clearly see where to put these calls to 
onException(). As far as I see, the listener will use a pool of 
MessageListenerTask  to periodically connect to the Queue to check if there is 
messages. So basically there is no asynchronous connection, if the connection 
fails during the check, it'll be tried again later on. So there is no need to 
reconnect on exception ?

I tried by just commented out the setExceptionListener call, and the service 
was deployed well.

But I got an error when stopping the application: 

javax.jms.IllegalStateException: Method stop 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.stop(JMSConnectionHandle.java:719)
        at 
org.apache.axis2.transport.jms.ServiceTaskManager.stop(ServiceTaskManager.java:241)
        at 
org.apache.axis2.transport.jms.JMSListener.stopEndpoint(JMSListener.java:119)
[...]

BTW, it could be interesting to print the linked Exception of the JMSException 
in the log. I had to modify the code to display it to see I had a credential 
problems.

Regards,
Florian

> 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/%[email protected]%3e
> Regards,
> Florian

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

Reply via email to