I have to write a web service client in short time that calls a web service running on a WebSphere app server.  The service is not under my control as it is a vendor product.  The service is in our SSO domain so we can call it with the LTPA token as a cookie(actually its a requirement for SSO since it is a background call) and not require the user's password.  I didnt see a way to do this using the custom cookie (LtpaToken) with Axis even though similar things were hashed over in hundreds of posts to this list.  For now I have a quick solution using Apache SOAP that works where: I use Apache SOAP to build the request envelope then unmarshal it into String, use Commons HttpClient to send it after adding the Http Header representing the LtpaToken as a cookie to the request, then use Apache SOAP to marshal the response back into a response envelope for processing.  Its convoluted, I know, but the SSO works and I didnt see a better way in the time I need it done. 
 
The problem is that some of the vendors services take org.w3c.dom.Elements as arguments and Apache SOAP has no serializers/deserializers for (literal) Elements.  Apache Axis handles org.w3c.dom.Elements fine, but it appears to be a much more difficult proposition to get the String, or byte[] representation of the Envelope that it intends to send across the wire, user HttpClient to actually send it, and then to build a response envelope from the response bytes that come back through HttpClient.  Can anyone point me to a quick way to do one, or both?  Or am I missing the boat and there is an easier way to add the cookie to the request when Axis goes to send the request?
 
Thanks in advance.
Mike
 

Reply via email to