Hello:
I have a Axis Web Service that sets the sessionid in the SOAP header for
persisting the session. The client is a .Net client that processes the header
as an Unknown Header. It sets the session id received from the Service
request on subsequent requests to the service. However the Axis Web service
does not process the SOAP header received from the .Net client and creates a
new session id for each request from the .Net client. Below are the SOAP
header captured from request and responses using tcpmon:
Axis Response: SOAP header sent by server
<soapenv:Header>
<ns1:sessionID soapenv:actor="
http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0"
xmlns:ns1="
http://xml.apache.org/axis/session">884521262653014708</ns1:sessionID>
</soapenv:Header>
SOAP Header sent by .Net client:
<soap:Header><ns1:sessionID
soapenv:actor="
http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="
http://xml.apache.org/axis/session" xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/">884521262653014708</ns1:sessionID></soap:Header>
If you examine these headers closely, these are not exactly the same. The
..Net client is adding a namespace "soapenv". I believe this is the reason the
Axis service is not able to understand the header. How can I modify the
client to use the "soap" namesapce instead of defining a new "soapenv"
namespace?
When I test the service using an axis client, the header from the client is
exactly the same as the header sent by the server and the server is able to
process the header and maintain the session.
Any help is much appreciated.
Thanks.
--