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>>
