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 "Steve Bell (JIRA)" <ji...@apache.org> on 2010/02/09 15:23:28 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=12831466#action_12831466 ] 

Steve Bell commented on WSCOMMONS-498:
--------------------------------------

Hmm,  this seems to fail in JBoss as well. M'colleage George Marrows commented on the closely related issue AXIS2-3662 a while ago, and we had high hopes this would be fixed properly in 1.5. When deploying the axis2.war in JBoss, though, I get the following:

javax.jms.IllegalStateException: This method is not applicable inside the application server. See the J2EE spec, e.g. J2EE1.4 Section 6.6
	at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.setExceptionListener(JmsSessionFactoryImpl.java:224)
	at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConnection(ServiceTaskManager.java:798)
	at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.getConnection(ServiceTaskManager.java:677)
	at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.receiveMessage(ServiceTaskManager.java:476)
	at org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:409)
	at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
	at java.lang.Thread.run(Thread.java:595)

We'll have to go back to our MDB work-around for now I guess.

Cheers,
Steve

> 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
>             Fix For: Transports 1.1
>
>
> 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.