[jboss-user] [JBossWS] - Cannot get details in custon fault

bossy do-not-reply at jboss.com
Tue Jul 24 11:59:53 EDT 2007


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



More information about the jboss-user mailing list