Hi, as for specs http://www.w3.org/TR/soap12-part1/#soapfault if a Fault occurs inside the interceptor chain the response should be something like: <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" > <S:Body> <S:Fault> <S:Code> <S:Value>S:Sender</S:Value> <S:Subcode> <S:Value>wsse:InvalidSecurityToken</S:Value> </S:Subcode> </S:Code> <S:Reason> <S:Text xml:lang="en-US">An invalid security token was provided</S:Text> </S:Reason> <S:Detail> </S:Detail> </S:Fault> </S:Body> </S:Envelope>
instead i get this: <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">An invalid security token was provided</soap:Text> </soap:Reason> </soap:Fault> </soap:Body> java code to generate Fault: SoapFault fault = new SoapFault("An invalid security token was provided", Soap12.getInstance().getSender()); fault = SoapFault.createFault(fault, Soap12.getInstance()); fault.setSubCode(WSConstants.INVALID_SECURITY_TOKEN); message.setContent(Exception.class, fault); throw fault; webservice endpoint is Soap12, CXF v2.5.2. debugging the code i see Soap12FaultOutInterceptorInternal being called , line 69 has SoapFault fault = SoapFault.createFault(f, message.getVersion()); which clone the fault (f) but looses the subcode. at line 94 Soap12FaultOutInterceptorInternal we have if (fault.getSubCode() != null) { and is always null and never output his value because it is lost in cloning. am i doing something wrong? is it a bug or a regression? (https://issues.apache.org/jira/browse/CXF-4181) thank you regards, Paolo -- View this message in context: http://cxf.547215.n5.nabble.com/Soap12FaultOutInterceptor-output-tp5645311p5645311.html Sent from the cxf-user mailing list archive at Nabble.com.
