Your WSDL snippet and the response message look ok. You may want to send out your WSDL file and client/server code (or paste them in a JIRA), so that we can have a quick debug to see whats going wrong there.
Thanks, Jervis > -----Original Message----- > From: Richard Mixon [mailto:[EMAIL PROTECTED] > Sent: 2007?9?13? 11:16 > To: [email protected] > Subject: Not able to catch desired Fault type > > > I would appreciate some help trying to understand how to > catch faults that > are defined in my WSDL in a Java client. > > My web service appears to be correctly throwing a specific Fault - > MemberExistsFault - when trying to add a record and the member already > exists. > > However when I catch it on the client, I am not able to catch a > MemberExistsFault. Instead the exception can be caught as a > javax.xml.ws.soap.SOAPFaultException > which in turn has a cause of > org.apache.cxf.binding.soap.SoapFault. > > > Here is what the log shows on the server: > INFO: Outbound Message > -------------------------------------- > <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> > <soap:Body> > <soap:Fault> > <soap:Code> > <soap:Value>soap:Receiver</soap:Value> > </soap:Code> > <soap:Reason> > <soap:Text xml:lang ="en"> > Member cannot be added, it is already in the database > </soap:Text> > </soap:Reason> > <soap:Detail> > <ns2:memberIdInfoType > xmlns:ns2="http://service.webservice.acme.com/"> > <emailAddress xmlns="">[EMAIL PROTECTED]</emailAddress> > <lastName xmlns="">myLastName</lastName> > <firstName xmlns="">myFirstName3</firstName> > </ns2:memberIdInfoType> > </soap:Detail> > </soap:Fault> > </soap:Body> > </soap:Envelope> > -------------------------------------- > > Below are the key parts of the WSDL (I can send the whole thing if > necessary). > > Thanks in advance - Richard > > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions name="MemberServiceService" > targetNamespace="http://service.webservice.acme.com/" > xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" > xmlns:ns1="http://service.webservice.acme.com/" > xmlns:tns="http://types.webservice.firedrum.com/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> > <wsdl:types> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://types.webservice.acme.com/" > attributeFormDefault="unqualified" > elementFormDefault="unqualified" > targetNamespace="http://types.webservice.acme.com/"> > ... > <xs:element name="MemberIdInfo" > type="tns:MemberIdInfoType"> > </xs:element> > <xs:complexType name="MemberIdInfoType"> > <xs:sequence> > <xs:element name="emailAddress" > type="xs:string"></xs:element> > <xs:element name="lastName" type="xs:string"></xs:element> > <xs:element name="firstName" type="xs:string"></xs:element> > </xs:sequence> > </xs:complexType> > </xs:schema> > </wsdl:types> > > ... > <wsdl:message name="MemberExistsFault"> > <wsdl:part name="MemberIdInfo" element="tns:MemberIdInfo"> > </wsdl:part> > </wsdl:message> > > ... > <wsdl:portType name="MemberService"> > > <wsdl:operation name="addMember"> > <wsdl:input name="addMember" message="ns1:addMember"> > </wsdl:input> > <wsdl:output name="addMemberResponse" > message="ns1:addMemberResponse"> > </wsdl:output> > <wsdl:fault name="InvalidClientFault" > message="ns1:InvalidClientFault"> > </wsdl:fault> > <wsdl:fault name="MemberExistsFault" > message="ns1:MemberExistsFault"> > </wsdl:fault> > <wsdl:fault name="InvalidEmailAddressFault" > message="ns1:InvalidEmailAddressFault"> > </wsdl:fault> > <wsdl:fault name="CategoryNotFoundFault" > message="ns1:CategoryNotFoundFault"> > </wsdl:fault> > <wsdl:fault name="CustomFieldTypeNotFoundFault" > message="ns1:CustomFieldTypeNotFoundFault"> > </wsdl:fault> > <wsdl:fault name="AddMemberUnknownFault" > message="ns1:AddMemberUnknownFault"></wsdl:fault> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="MemberServiceServiceSoapBinding" > > type="ns1:MemberService"> > <soap12:binding style="document" > > transport="http://www.w3.org/2003/05/soap/bindings/HTTP/" /> > > > <wsdl:operation name="addMember"> > <soap12:operation soapAction="" style="document" /> > <wsdl:input name="addMember"> > <soap12:body use="literal" /> > </wsdl:input> > <wsdl:output name="addMemberResponse"> > <soap12:body use="literal" /> > </wsdl:output> > <wsdl:fault name="InvalidClientFault"/> > <wsdl:fault name="MemberExistsFault"/> > <wsdl:fault name="InvalidEmailAddressFault"/> > <wsdl:fault name="CategoryNotFoundFault"/> > <wsdl:fault name="CustomFieldTypeNotFoundFault"/> > <wsdl:fault name="AddMemberUnknownFault"/> > </wsdl:operation> > <wsdl:service name="MemberServiceService"> > <wsdl:port name="MemberServicePort" > > binding="ns1:MemberServiceServiceSoapBinding"> > <soap12:address > location="http://localhost:8080/services/MemberService" /> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > > ---------------------------- IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
