You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "George Marrows (JIRA)" <ji...@apache.org> on 2008/03/26 15:37:24 UTC

[jira] Created: (AXIS2-3662) Can't use JMS transport from axis2.war on WebSphere Application Server 6.1

Can't use JMS transport from axis2.war on WebSphere Application Server 6.1
--------------------------------------------------------------------------

                 Key: AXIS2-3662
                 URL: https://issues.apache.org/jira/browse/AXIS2-3662
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.3
         Environment: WebSphere Application Server 6.1, Axis2 war deployment
            Reporter: George Marrows


>From http://www.nabble.com/setMessageListener-not-permitted-in-Websphere-td15306747.html: 

> We are currently deploying axis2 in Websphere 6.1. We wish to 
> use the jms transport. However axis2 fails to start because 
> it uses forbidden api's. 
> 
> On startup axis2's JMSConnectionFactory class calls the 
> listenOnDestination(String destinationJndi) method. Here it 
> creates a MessageConsumer and calls the 
> MessageConsumer.setMessageListener(MessageListener listener) 
> method. This causes failure and the exception thrown is as follows:
> javax.jms.IllegalStateException: Method setMessageListener 
> not permitted 
> 
> On looking through docs online it is clear that IBM have 
> stuck to the J2EE
> 1.4 specification. This states that the
> MessageConsumer.setMessageListener(MessageListener listener) 
> method can not be called in a Web or EJB container. See 
> http://www.ibm.com/developerworks/library/j-getmess/ for details. 

[See http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf, section 6.6 for the actual spec reference.]

This means that the only way of deploying Axis2 with JMS transport on WAS is to use the standalone axis server. This works, but a deployment within the application server would be greatly preferable.


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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-3662) Can't use JMS transport from axis2.war on WebSphere Application Server 6.1

Posted by "Asankha C. Perera (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-3662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12584054#action_12584054 ] 

Asankha C. Perera commented on AXIS2-3662:
------------------------------------------

The original post above stated that:

>My question is that why is axis2 not compliant with this specification? Also what options do i have for using the jms transport with axis2 in WAS

Axis2 is targeted for the Web container of a J2EE server, and the typical restrictions that applies for the EJB containers were not applicable to the Web container earlier

>Initial research shows the following possibilities:
>1) Use MDB's (not ideal)
>2) Change the axis2 code itself and make a synchronous MessageConsumer.receive call and poll for messages

Axis2 needs to start/stop listening on JMS destinations as new services are deployed/un-deployed, and thus I do not think the use of MDB's is going to be a proper solution. I am not in favour of using a polling mechanism either - as JMS needs to be a high performance and time-critical transport - unlike the File/Mail transports etc, where polling is acceptable and/or relevant

>Can anyone advice on the best approach here? And also will axis2 become compliant with the J2EE 1.4 spec in the future?

I am looking at this, and at the same time thinking about how we should support transactions with JMS.. so any comments from the community is welcome

asankha


> Can't use JMS transport from axis2.war on WebSphere Application Server 6.1
> --------------------------------------------------------------------------
>
>                 Key: AXIS2-3662
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3662
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.3
>         Environment: WebSphere Application Server 6.1, Axis2 war deployment
>            Reporter: George Marrows
>
> From http://www.nabble.com/setMessageListener-not-permitted-in-Websphere-td15306747.html: 
> > We are currently deploying axis2 in Websphere 6.1. We wish to 
> > use the jms transport. However axis2 fails to start because 
> > it uses forbidden api's. 
> > 
> > On startup axis2's JMSConnectionFactory class calls the 
> > listenOnDestination(String destinationJndi) method. Here it 
> > creates a MessageConsumer and calls the 
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method. This causes failure and the exception thrown is as follows:
> > javax.jms.IllegalStateException: Method setMessageListener 
> > not permitted 
> > 
> > On looking through docs online it is clear that IBM have 
> > stuck to the J2EE
> > 1.4 specification. This states that the
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method can not be called in a Web or EJB container. See 
> > http://www.ibm.com/developerworks/library/j-getmess/ for details. 
> [See http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf, section 6.6 for the actual spec reference.]
> This means that the only way of deploying Axis2 with JMS transport on WAS is to use the standalone axis server. This works, but a deployment within the application server would be greatly preferable.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Assigned: (AXIS2-3662) Can't use JMS transport from axis2.war on WebSphere Application Server 6.1

Posted by "Asankha C. Perera (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Asankha C. Perera reassigned AXIS2-3662:
----------------------------------------

    Assignee: Asankha C. Perera

> Can't use JMS transport from axis2.war on WebSphere Application Server 6.1
> --------------------------------------------------------------------------
>
>                 Key: AXIS2-3662
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3662
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.3
>         Environment: WebSphere Application Server 6.1, Axis2 war deployment
>            Reporter: George Marrows
>            Assignee: Asankha C. Perera
>
> From http://www.nabble.com/setMessageListener-not-permitted-in-Websphere-td15306747.html: 
> > We are currently deploying axis2 in Websphere 6.1. We wish to 
> > use the jms transport. However axis2 fails to start because 
> > it uses forbidden api's. 
> > 
> > On startup axis2's JMSConnectionFactory class calls the 
> > listenOnDestination(String destinationJndi) method. Here it 
> > creates a MessageConsumer and calls the 
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method. This causes failure and the exception thrown is as follows:
> > javax.jms.IllegalStateException: Method setMessageListener 
> > not permitted 
> > 
> > On looking through docs online it is clear that IBM have 
> > stuck to the J2EE
> > 1.4 specification. This states that the
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method can not be called in a Web or EJB container. See 
> > http://www.ibm.com/developerworks/library/j-getmess/ for details. 
> [See http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf, section 6.6 for the actual spec reference.]
> This means that the only way of deploying Axis2 with JMS transport on WAS is to use the standalone axis server. This works, but a deployment within the application server would be greatly preferable.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-3662) Can't use JMS transport from axis2.war on WebSphere Application Server 6.1

Posted by "George Marrows (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-3662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12585636#action_12585636 ] 

George Marrows commented on AXIS2-3662:
---------------------------------------

Hi Asankha - thanks for looking at this.

I agree that the polling option does not seem sensible. Like Cathal (originator of the mail used in the bug report), I'm developing a custom MDB-based approach. You're right this will lose hot deployment of new services that need to listen on a new queue/topic (because a new MDB will also need to be declared to listen on that destination), but I hope to be able to maintain hot update of changed services. Perhaps that's an acceptable compromise for running on a wider range of app servers in a J2EE-compliant way?

Another option of course is to see how other ws stacks have handled this issue, if any have.

-- George

> Can't use JMS transport from axis2.war on WebSphere Application Server 6.1
> --------------------------------------------------------------------------
>
>                 Key: AXIS2-3662
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3662
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.3
>         Environment: WebSphere Application Server 6.1, Axis2 war deployment
>            Reporter: George Marrows
>
> From http://www.nabble.com/setMessageListener-not-permitted-in-Websphere-td15306747.html: 
> > We are currently deploying axis2 in Websphere 6.1. We wish to 
> > use the jms transport. However axis2 fails to start because 
> > it uses forbidden api's. 
> > 
> > On startup axis2's JMSConnectionFactory class calls the 
> > listenOnDestination(String destinationJndi) method. Here it 
> > creates a MessageConsumer and calls the 
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method. This causes failure and the exception thrown is as follows:
> > javax.jms.IllegalStateException: Method setMessageListener 
> > not permitted 
> > 
> > On looking through docs online it is clear that IBM have 
> > stuck to the J2EE
> > 1.4 specification. This states that the
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method can not be called in a Web or EJB container. See 
> > http://www.ibm.com/developerworks/library/j-getmess/ for details. 
> [See http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf, section 6.6 for the actual spec reference.]
> This means that the only way of deploying Axis2 with JMS transport on WAS is to use the standalone axis server. This works, but a deployment within the application server would be greatly preferable.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Resolved: (AXIS2-3662) Can't use JMS transport from axis2.war on WebSphere Application Server 6.1

Posted by "Asankha C. Perera (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-3662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Asankha C. Perera resolved AXIS2-3662.
--------------------------------------

    Resolution: Fixed

Fixed with WS-Commons transport revision 724432

The JMS transport does not use JEE prohibited APIs anymore.

> Can't use JMS transport from axis2.war on WebSphere Application Server 6.1
> --------------------------------------------------------------------------
>
>                 Key: AXIS2-3662
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3662
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.3
>         Environment: WebSphere Application Server 6.1, Axis2 war deployment
>            Reporter: George Marrows
>
> From http://www.nabble.com/setMessageListener-not-permitted-in-Websphere-td15306747.html: 
> > We are currently deploying axis2 in Websphere 6.1. We wish to 
> > use the jms transport. However axis2 fails to start because 
> > it uses forbidden api's. 
> > 
> > On startup axis2's JMSConnectionFactory class calls the 
> > listenOnDestination(String destinationJndi) method. Here it 
> > creates a MessageConsumer and calls the 
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method. This causes failure and the exception thrown is as follows:
> > javax.jms.IllegalStateException: Method setMessageListener 
> > not permitted 
> > 
> > On looking through docs online it is clear that IBM have 
> > stuck to the J2EE
> > 1.4 specification. This states that the
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method can not be called in a Web or EJB container. See 
> > http://www.ibm.com/developerworks/library/j-getmess/ for details. 
> [See http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf, section 6.6 for the actual spec reference.]
> This means that the only way of deploying Axis2 with JMS transport on WAS is to use the standalone axis server. This works, but a deployment within the application server would be greatly preferable.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-3662) Can't use JMS transport from axis2.war on WebSphere Application Server 6.1

Posted by "Asankha C. Perera (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-3662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12585893#action_12585893 ] 

Asankha C. Perera commented on AXIS2-3662:
------------------------------------------

Hi George

Actually I looked into two other implementations and it seems they both use the 'polling' approach. I do not think the MDB approach can work at all - for Apache Synapse, which uses the JMS transport a lot, thus to keep the core code executable within and outside of a JEE app server, I thought of using polling within and async outside and to decide on this at runtime. I also need to keep backward compatibility with JMS 1.0.x and also add support for transactional JMS. So I will be doing some enhancements pretty soon - initially into the version within Synapse, and then contribute this to Axis2 as well

asankha

> Can't use JMS transport from axis2.war on WebSphere Application Server 6.1
> --------------------------------------------------------------------------
>
>                 Key: AXIS2-3662
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3662
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.3
>         Environment: WebSphere Application Server 6.1, Axis2 war deployment
>            Reporter: George Marrows
>
> From http://www.nabble.com/setMessageListener-not-permitted-in-Websphere-td15306747.html: 
> > We are currently deploying axis2 in Websphere 6.1. We wish to 
> > use the jms transport. However axis2 fails to start because 
> > it uses forbidden api's. 
> > 
> > On startup axis2's JMSConnectionFactory class calls the 
> > listenOnDestination(String destinationJndi) method. Here it 
> > creates a MessageConsumer and calls the 
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method. This causes failure and the exception thrown is as follows:
> > javax.jms.IllegalStateException: Method setMessageListener 
> > not permitted 
> > 
> > On looking through docs online it is clear that IBM have 
> > stuck to the J2EE
> > 1.4 specification. This states that the
> > MessageConsumer.setMessageListener(MessageListener listener) 
> > method can not be called in a Web or EJB container. See 
> > http://www.ibm.com/developerworks/library/j-getmess/ for details. 
> [See http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf, section 6.6 for the actual spec reference.]
> This means that the only way of deploying Axis2 with JMS transport on WAS is to use the standalone axis server. This works, but a deployment within the application server would be greatly preferable.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org