You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Henrik Hjalmarsson <he...@fyrplus.se> on 2008/10/07 09:29:43 UTC

Exception deserialization problem? (WebSphere as server)

We have an server application running in WebSphere 6.1 and a client using
Axis 1.4. Both the server and client are Java applications running in Java
1.4.2.
The server and client side Java is generated from WSDL using axis and
websphere ant target's wsdl2java.

The server throws custom checked exceptions and we try to catch these on the
client side. The problem is that they appear only as AxisFault with the
textual part as the fully qualified name of the server exception that was
thrown. We are expecting the client exception that corresponds to the server
exception.

The exception I'm currently investigating is an exception containing no
extra data. I have used a network analyzer and found the web service data
sent by WebSphere to the client, which shows how the exception is serialized
for sending to the client. See data content for the message sent here:

<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
  <soapenv:Fault>
    <faultcode
    xmlns:p799="http://backend.product.company.com">
    p799:PassengerNotExistException
    </faultcode>
    <faultstring>
     
<![CDATA[com.company.product.webservice.backend.server.PassengerNotExistException]]>
    </faultstring>
    <detail encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <fault href="#id0"/>
    </detail>
  </soapenv:Fault>
  <multiRef id="id0" soapenc:root="0"
  soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
  xsi:type="p799:PassengerNotExistException"
  xmlns:p799="http://backend.product.company.com"/>
</soapenv:Body>
</soapenv:Envelope>

It can be seen that the exception is serialized in some way but I do not
know if the problem is that Axis cannot deserialize this format to the
correct exception and therefore gives the AxisFault instead ?

Or do anyone have any idea on how we can solve this problem?

I reckon the information on the exception issues in webservices are sparsely
documented at best.

Here follows an excerpt of the WSDL specifications.

<wsdl:types>
  <xsd:schema targetNamespace="http://backend.product.company.com">
  <xsd:complexType name="PassengerNotExistException">
    <sequence />
  </xsd:complexType>
</wsdl:types>

<wsdl:message name="PassengerNotExistException">
  <wsdl:part name="fault" type="backend:PassengerNotExistException" />
</wsdl:message>

<wsdl:portType name="BackendInterface">
  <wsdl:operation name="getClients">		
    <wsdl:input message="..." />
    <wsdl:output message="..." />
    <wsdl:fault name="PassengerNotExistException"
message="backend:PassengerNotExistException" />
  </wsdl:operation>
</wsdl:portType>

<wsdl:binding name="BackendInterfaceSOAP" type="backend:BackendInterface">
  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"
/>
  <wsdl:operation name="getClients">
    <soap:operation
soapAction="http://backend.product.company.com/getClients" />
    <wsdl:input>
      <soap:body use="encoded"
		encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
		namespace="http://backend.product.company.com" />
    </wsdl:input>
    <wsdl:output>
      <soap:body use="encoded"
		encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
		namespace="http://backend.product.company.com" />
    </wsdl:output>
    <wsdl:fault name="PassengerNotExistException">
      <soap:fault name="PassengerNotExistException"
			use="encoded"
			encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
			namespace="http://backend.product.company.com" />
    </wsdl:fault>
  </wsdl:operation>
</wsdl:binding>

Regards,
Henrik
-- 
View this message in context: http://www.nabble.com/Exception-deserialization-problem--%28WebSphere-as-server%29-tp19852588p19852588.html
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org