Hi Michal,
 
the way how to figure out which service you have to invoke on server side depents on 
the soap type.
For a SOAP-RPC service are rules defined in the SOAP-spec. For a DOCUMENT-style 
service NOT.
http uses (at the moment) the soapaction. But with  SOAP 1.2 the soapaction is 
deprecated. The specs says only that it is up to the service provider to figure out 
which service to call.
(BTW Axis uses the namespace of the first body element to find the service).
We use a soap header to transfer the servicename. As far as I know there is no 
standard way to do this over JMS.
Regards
 
Oliver
 
 

        -----Urspr�ngliche Nachricht----- 
        Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] 
        Gesendet: Do 13.02.2003 12.34 Uhr 
        An: [EMAIL PROTECTED] 
        Cc: 
        Betreff: Re: AW: AW: How to set JMS transport destination service
        
        
Hi Oliver,
I successfully called my service on server side :-)
The problem is that I extended SimpleJMSListener and this Object
creates "new" axis server, so it wasn't using mine already created,
my mistake :-)

Here's example what I do on server side.

When server side is started:
server = new AxisServer(new XMLStringProvider(wsdd));

When JMS message is received:
...
converts received message to bytestream
...
//Reference to my previously created server axis instance.
AxisServer server = MySimpleJMSListener.getAxisServer();
Message msg = new Message(in);
MessageContext  msgContext = new MessageContext(server);
msgContext.setTargetService("MessageService");
msgContext.setRequestMessage( msg );
....

I have one more question: Do you incorporate in some way the
destination service when sending JMS message from client? Probably
add them as attribute part of JMSMessage?

How do you distinguish which service should be called if it receives
message from the same queue name?

Thanks for help.

Cheers,
Michal


<<winmail.dat>>

Reply via email to