In case of failure each called method adds an entry to my exception list.
The exception list is passed to the SOAP client. But the content can not be
resolved ("#id0", see TCPMonitor trace below).
I called the registerTypeMapping method for the WdcServerException and the
ExceptionData.

The exception is caught correctly, but there is no data (exception list)
inside.

try {
    call.invoke( new Object[] { } );
}
catch (Homag.WoodCommander.WDC_Server.Soap.WdcServerException e) {
    ...
}


It seems to me that the #id0 can not be resolved because only the subtree
of <ns1:fault> is parsed
(org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument is
called).
How can I get the exception list on the client side with axis?


Here is the TCPMonitor trace:



HTTP/1.1 500 Internal Server Error

Set-Cookie: JSESSIONID=99B7D8C731BB8C96D44048294B7C74F0; Path=/axis

Content-Type: text/xml; charset=utf-8

Date: Wed, 26 Mar 2003 09:05:40 GMT

Server: Apache Coyote/1.0

Connection: close



<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance";>
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:Server.generalException</faultcode>
   <faultstring></faultstring>
   <detail>
    <ns1:fault href="#id0" xmlns:ns1="urn:WDC_ServerSoap"/>
    <ns2:exceptionName xmlns:ns2
="http://xml.apache.org/axis/";>Homag.WoodCommander.WDC_Server.Soap.WdcServerException</ns2:exceptionName>
    <ns3:stackTrace xmlns:ns3="http://xml.apache.org/axis/";>AxisFault

 faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.generalException

 faultSubcode:

 faultString:

 faultActor: null

 faultNode: null

 faultDetail:

      exceptionName: Homag.WoodCommander.WDC_Server.Soap.WdcServerException





      at
Homag.WoodCommander.WDC_Server.Soap.WDC_ServerSoapSoapBindingImpl.setup(WDC_ServerSoapSoapBindingImpl.java:105)

      at
Homag.WoodCommander.WDC_Server.Soap.WDC_ServerSoapSoapBindingSkeleton.setup(WDC_ServerSoapSoapBindingSkeleton.java:173)

      at java.lang.reflect.Method.invoke(Native Method)

      at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:385)

      at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:293)

      at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:332)

      at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)

      at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)

      at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)

      at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:469)

      at org.apache.axis.server.AxisServer.invoke(AxisServer.java:315)

      at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:766)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

      at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

      at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

      at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)

      at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

      at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

      at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

      at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

      at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

      at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)

      at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

      at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

      at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

      at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

      at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)

      at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)

      at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

      at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

      at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)

      at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)

      at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)

      at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)

      at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)

      at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)

      at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)

      at java.lang.Thread.run(Thread.java:484)

</ns3:stackTrace>
   </detail>
  </soapenv:Fault>
  <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; xsi:type
="ns4:WdcServerException" xmlns:soapenc
="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns4
="urn:WDC_ServerSoap">
   <Data href="#id1"/>
   <Data href="#id2"/>
   <Data href="#id3"/>
  </multiRef>
  <multiRef id="id2" soapenc:root="0" soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; xsi:type="ns5:ExceptionData"
xmlns:ns5="urn:WDC_ServerSoap" xmlns:soapenc
="http://schemas.xmlsoap.org/soap/encoding/";>
   <Number xsi:type="xsd:int">2</Number>
   <IsNlsText xsi:type="xsd:boolean">false</IsNlsText>
   <Text xsi:type="xsd:string">Error %ld</Text>
   <FilledText xsi:type="xsd:string">Error 1</FilledText>
   <SourceFunction xsi:type="xsd:string">sourceFunction</SourceFunction>
   <SourceFileName xsi:type="xsd:string">SourceFileName</SourceFileName>
   <SourceLineNumber xsi:type="xsd:int">123</SourceLineNumber>
   <FillingWords xsi:type="xsd:string">1</FillingWords>
   <FillingWords xsi:type="xsd:string"></FillingWords>
   <Category xsi:type="xsd:int">1</Category>
   <Priority xsi:type="xsd:int">2</Priority>
  </multiRef>
  <multiRef id="id3" soapenc:root="0" soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; xsi:type="ns6:ExceptionData"
xmlns:ns6="urn:WDC_ServerSoap" xmlns:soapenc
="http://schemas.xmlsoap.org/soap/encoding/";>
   <Number xsi:type="xsd:int">3</Number>
   <IsNlsText xsi:type="xsd:boolean">false</IsNlsText>
   <Text xsi:type="xsd:string">Error %ld</Text>
   <FilledText xsi:type="xsd:string">Error 2</FilledText>
   <SourceFunction xsi:type="xsd:string">sourceFunction</SourceFunction>
   <SourceFileName xsi:type="xsd:string">SourceFileName</SourceFileName>
   <SourceLineNumber xsi:type="xsd:int">123</SourceLineNumber>
   <FillingWords xsi:type="xsd:string">2</FillingWords>
   <FillingWords xsi:type="xsd:string"></FillingWords>
   <Category xsi:type="xsd:int">1</Category>
   <Priority xsi:type="xsd:int">2</Priority>
  </multiRef>
  <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; xsi:type="ns7:ExceptionData"
xmlns:ns7="urn:WDC_ServerSoap" xmlns:soapenc
="http://schemas.xmlsoap.org/soap/encoding/";>
   <Number xsi:type="xsd:int">1</Number>
   <IsNlsText xsi:type="xsd:boolean">false</IsNlsText>
   <Text xsi:type="xsd:string">Error %ld</Text>
   <FilledText xsi:type="xsd:string">Error 0</FilledText>
   <SourceFunction xsi:type="xsd:string">sourceFunction</SourceFunction>
   <SourceFileName xsi:type="xsd:string">SourceFileName</SourceFileName>
   <SourceLineNumber xsi:type="xsd:int">123</SourceLineNumber>
   <FillingWords xsi:type="xsd:string">0</FillingWords>
   <FillingWords xsi:type="xsd:string"></FillingWords>
   <Category xsi:type="xsd:int">1</Category>
   <Priority xsi:type="xsd:int">2</Priority>
  </multiRef>
 </soapenv:Body>
</soapenv:Envelope>






Thanks in advance
Thomas


Reply via email to