I need to throw a custom exception from a web service. The problem is I don't 
get the details.
I'm running my WS under jboss 4.0.4.
My wsdl contains the following :



  | <xsd:element name="MyOperationFault">
  |             <xsd:complexType>
  |                     <xsd:sequence>
  |                             <xsd:element name="MyOperationFaultCode" 
type="xsd:string" />
  |                             <xsd:element name="MyOperationFaultSeverity" 
type="xsd:string" />
  |                             <xsd:element name="MyOperationFaultMessage" 
type="xsd:string" />
  |                             <xsd:element name="MyOperationFaultComment" 
type="xsd:string" />
  |                     </xsd:sequence>
  |             </xsd:complexType>
  |     </xsd:element>
  | </xsd:schema>
  | </wsdl:types>
  | 
  | <wsdl:message name="MyOperationRequest">
  | <wsdl:part element="tns:MyOperationRequest" name="parameters"/>
  | </wsdl:message>
  | <wsdl:message name="MyOperationResponse">
  | <wsdl:part element="tns:MyOperationResponse" name="parameters"/>
  | </wsdl:message>
  | 
  | 
  | 
  | 
  | <wsdl:message name="MyOperationFault">
  |     <wsdl:part name="parameters" element="tns:MyOperationFault"></wsdl:part>
  | </wsdl:message>
  | <wsdl:portType name="Test">
  |     <wsdl:operation name="MyOperation">
  |             <wsdl:input message="tns:MyOperationRequest"/>
  |             <wsdl:output message="tns:MyOperationResponse"/>
  |           <wsdl:fault name="MyOperationException" 
message="tns:MyOperationFault"></wsdl:fault>
  |       </wsdl:operation>
  | 
  | </wsdl:portType>
  | 
  | <wsdl:binding name="TestSOAP" type="tns:Test">
  | <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  | 
  | 
  | <wsdl:operation name="MyOperation">
  |     <soap:operation soapAction="http://www.mycom.com/Test/MyOperation"/>
  |     <wsdl:input><soap:body use="literal"/></wsdl:input>
  |     <wsdl:output><soap:body use="literal"/></wsdl:output>
  |     <wsdl:fault name="MyOperationException" >
  |             <soap:fault name="MyOperationException"/>       
  |     </wsdl:fault>
  | </wsdl:operation>                   
  | 
  | </wsdl:binding>

My mapping file contains this:


  | 
  | 
  | <java-xml-type-mapping>
  |     <java-type>com.mycom.myapp.ws.types.MyOperationFault</java-type>
  |     <root-type-qname 
xmlns:typeNS="http://www.mycom.com/Test/";>typeNS:MyOperationFault</root-type-qname>
  |     <qname-scope>complexType</qname-scope>
  |     <variable-mapping>
  |       <java-variable-name>MyOperationFaultCode</java-variable-name>
  |       <xml-element-name>MyOperationFaultCode</xml-element-name>
  |     </variable-mapping>
  |     <variable-mapping>
  |       <java-variable-name>MyOperationFaultSeverity</java-variable-name>
  |       <xml-element-name>MyOperationFaultSeverity</xml-element-name>
  |     </variable-mapping>
  |     <variable-mapping>
  |       <java-variable-name>MyOperationFaultMessage</java-variable-name>
  |       <xml-element-name>MyOperationFaultMessage</xml-element-name>
  |     </variable-mapping>
  |     <variable-mapping>
  |       <java-variable-name>MyOperationFaultComment</java-variable-name>
  |       <xml-element-name>MyOperationFaultComment</xml-element-name>
  |     </variable-mapping>
  |   </java-xml-type-mapping>
  |     
  |     
  | <exception-mapping>
  |     
<exception-type>com.mycom.myapp.ws.types.MyOperationFault</exception-type>
  |     <wsdl-message 
xmlns:exMsgNS="http://www.mycom.com/Test/";>exMsgNS:MyOperationFault</wsdl-message>
  |     <constructor-parameter-order>
  |       <element-name>MyOperationFaultCode</element-name>
  |       <element-name>MyOperationFaultSeverity</element-name>
  |       <element-name>MyOperationFaultMessage</element-name>
  |       <element-name>MyOperationFaultComment</element-name>
  |     </constructor-parameter-order>
  |   </exception-mapping>
  |     
  |   <service-interface-mapping>
  |     
<service-interface>com.mycom.myapp.ws.serviceTestService</service-interface>
  |     <wsdl-service-name 
xmlns:serviceNS="http://www.mycom.com/Test/";>serviceNS:TestService</wsdl-service-name>
  |     <port-mapping>
  |       <port-name>TestSOAP</port-name>
  |       <java-port-name>TestSOAP</java-port-name>
  |     </port-mapping>
  |   </service-interface-mapping>
  |   
  |   
  |   <service-endpoint-interface-mapping>
  |   
  |     
<service-endpoint-interface>com.mycom.myapp.ws.Test</service-endpoint-interface>
  |     <wsdl-port-type 
xmlns:portTypeNS="http://www.mycom.com/Test/";>portTypeNS:Test</wsdl-port-type>
  |     <wsdl-binding 
xmlns:bindingNS="http://www.mycom.com/Test/";>bindingNS:TestSOAP</wsdl-binding>
  |     
  |      
  |     
  |     
  |     <service-endpoint-method-mapping>
  |       <java-method-name>MyOperation</java-method-name>
  |       <wsdl-operation>MyOperation</wsdl-operation>
  |       <wrapped-element/>
  |       
  |       <method-param-parts-mapping>
  |         <param-position>0</param-position>
  |         <param-type>java.lang.String</param-type>
  |         <wsdl-message-mapping>
  |           <wsdl-message 
xmlns:wsdlMsgNS="http://www.mycom.com/Test/";>wsdlMsgNS:MyOperationRequest</wsdl-message>
  |           <wsdl-message-part-name>par1</wsdl-message-part-name>
  |           <parameter-mode>IN</parameter-mode>
  |         </wsdl-message-mapping>
  |       </method-param-parts-mapping>
  |       
  |       <method-param-parts-mapping>
  |         <param-position>1</param-position>
  |         <param-type>java.lang.String</param-type>
  |         <wsdl-message-mapping>
  |           <wsdl-message 
xmlns:wsdlMsgNS="http://www.mycom.com/Test/";>wsdlMsgNS:MyOperationRequest</wsdl-message>
  |           <wsdl-message-part-name>par2</wsdl-message-part-name>
  |           <parameter-mode>IN</parameter-mode>
  |         </wsdl-message-mapping>
  |       </method-param-parts-mapping>
  |       
  |       <wsdl-return-value-mapping>
  |         
<method-return-value>com.mycom.myapp.ws.api.MyOperationResponse</method-return-value>
  |         <wsdl-message 
xmlns:wsdlMsgNS="http://www.mycom.com/Test/";>wsdlMsgNS:MyOperationResponse</wsdl-message>
  |         <wsdl-message-part-name>parameters</wsdl-message-part-name>
  |       </wsdl-return-value-mapping>
  |       
  |     </service-endpoint-method-mapping>
  |   </service-endpoint-interface-mapping>
  | 
  | 


and this is how my methods are declared:


  | public MyOperationResponse MyOperation(MyOperationRequest request) throws  
RemoteException,MyOperationFault;
  | 

MyOperationFault extends extends Exception implements Serializable


The problem is that when I throw MyOperationFault I get this:


<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
  |  <env:Header/>
  |  <env:Body>
  |     <env:Fault>
  |        <faultcode>env:Client</faultcode>
  |        <faultstring>com.mycom.myapp.ws.types.MyOperationFault</faultstring>
  |     </env:Fault>
  |  </env:Body>
  | </env:Envelop>

I would expect to see also an element "detail" with the rest of the 
MyOperationFault properties.Can somebody point me the right direction what am I 
doing wrong?
Thanks.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4067089#4067089

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4067089
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to