Hi,

 

I got it working. I think the patch given in
http://issues.apache.org/jira/browse/AXIS2-1488 is incomplete.

 

The JMS listener is initialized but it is not startet! Therefore I
patched the patch as follows:

 

protected void initializeAllTransportReceiversButHttp(ListenerManager
listenerManager ) {

        QName httpTransportName = new QName(Constants.TRANSPORT_HTTP);

        Iterator transportNames =
axisConfiguration.getTransportsIn().values().iterator();

        while (transportNames.hasNext()) {

            try {                  

                TransportInDescription transportInDescription =
(TransportInDescription) transportNames.next();                    

                if
(!transportInDescription.getName().getLocalPart().equals(httpTransportNa
me.getLocalPart())) {

                    TransportListener listener =
transportInDescription.getReceiver();

                    listener.init(configContext,
transportInDescription);

                    listener.start();

                    listenerManager.addListener(transportInDescription,
true);

                        log.debug("Transport receiver [" +
transportInDescription.getName() + "] has been initialized.");

                }

            } catch (Exception e) {

                log.error(e);

            }

        }

}

 

I'm surprised that there is no fixed Axis2 version. Also Axis2 version
1.3 does not work with JMS and JBoss (the patch is not included).

I think it is a blocker for Axis2. Nobody will use the simple axis
server in production environment and JMS becomes more and more
important.

 

Will there be a fix in the near future?

 

Ines

 

________________________________

Von: Upul Godage [mailto:[EMAIL PROTECTED] 
Gesendet: Dienstag, 8. April 2008 16:01
An: axis-user@ws.apache.org
Betreff: Re: AW: SOAP with JMS and JBoss

 

Hi,

Could you go through all the destinations in JBoss and see where Axis2
service is listening. If there are no errors in the Axis2 console, it
should be listening in somewhere :-). 
Isolate the service and the JBoss. Don't start anything else.
Go to http://localhost:8080/jmx-console/.
Go to jboss.mq.destination section.
Go to each destination under that heading.
See whether SubscribersCount or ReceiversCount has a 1 instead of 0.
Then that is where the service is listening.
If there is nothing, copy and send the Axis2 server startup log.
Also could you check with the latest Axis2 1.3.

Upul
 




On Tue, Apr 8, 2008 at 6:04 PM, Ines Dannehl
<[EMAIL PROTECTED]> wrote:

Hi Upul,

 

the queue seems to be correct. There are also messages in. But nobody
listens to the queue. I found a bug report for Axis2 version 1.1.1
http://issues.apache.org/jira/browse/AXIS2-1488

Therefore I tried the patch given (for AxisServlet.java). Now I get the
following error message in the JBoss logfile:

ERROR [AxisServlet] java.lang.ClassCastException:
org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl

Which is thrown while initializing the JMS transport listener: 

listener.init(configContext, transportInDescription);

My axis2.xml looks like that. 

   <transportReceiver name="jms"
class="org.apache.axis2.transport.jms.JMSListener">

        <parameter name="default" locked="false">                       

            <parameter name="java.naming.factory.initial"
locked="false">org.jnp.interfaces.NamingContextFactory</parameter>

            <parameter name="java.naming.provider.url"
locked="false">jnp://localhost:1199</parameter>                  

            <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">QueueConnectionFactory</parameter>

        </parameter>

    </transportReceiver>

What is wrong?

Ines 

________________________________

Von: Upul Godage [mailto:[EMAIL PROTECTED] 
Gesendet: Freitag, 4. April 2008 04:59


An: axis-user@ws.apache.org <mailto:axis-user@ws.apache.org> 
Betreff: Re: AW: SOAP with JMS and JBoss 

May be client is using StockQuoteService and the server is listening on
queue/StockQuoteService. Start jboss and the server and see whether
service is listening to the destination.  You can check that from the
JBoss jmx-console, going to the relevent destination page and checking
the receiversCount or something. Also check where client is sending the
message from the console by the message count listed in the relevent
destination.

Upul

On Thu, Apr 3, 2008 at 6:05 PM, Ines Dannehl
<[EMAIL PROTECTED]> wrote:

Hi Asankha,

I can't find out the correct full JNDI name of the queue. I get the log
message: 

2008-04-03 14:23:24,659 INFO
[org.jboss.mq.server.jmx.Queue.StockQuoteService] Bound to JNDI name:
queue/StockQuoteService

But when I use queue/StockQuoteService as JNDI name it's still the same.


I also wonder that there is no exception when I give a sure non-existing
JNDI name in the configuration you recommended (e.g. BLABLA). 

Do you have some experiences with the JBoss configuration?

Regards

Ines

________________________________

Von: Asankha C. Perera [mailto:[EMAIL PROTECTED] 
Gesendet: Mittwoch, 2. April 2008 10:44


An: axis-user@ws.apache.org

Betreff: Re: AW: SOAP with JMS and JBoss 

Ines

It seems like the request was sent to the right queue but the webservice
is not listening to the queue. I did no special configuration for the
webservice. Therefore I think it should listen to a queue with the
service name (StockQuoteService). Do I need a special message receiver?
The StockQuoteService from the Axis2 example has the message receiver

Yes, now its getting into a Queue, but the Queue name is not properly
bound to the service.  On your services' services.xml add the following
parameter

<parameter name="transport.jms.Destination"
locked="true">thefullJNDINameOfYourDestination</parameter>
 
Ref: http://ws.apache.org/axis2/1_3/jms-transport.html
 
asankha

 

 

 

Reply via email to