我正在使用带有 SOAP 1.2 协议的 Spring Boot 开发 SOAP WebService 服务器。我试图用它需要的所有细节填充 SOAPFault,并抛出包裹在 SOAPFaultException 中。但是 SOAPUI 中的 SOAPFault 响应没有显示详细信息。
我以这种方式创建 SOAPFault:
SOAPFactory soapFactory = SOAPFactory.newInstance( SOAPConstants.SOAP_1_2_PROTOCOL );
SOAPFault soapFault12 = soapFactory.createFault();
soapFault12.appendFaultSubcode( new QName( "http://test.cz", "404" ) );
soapFault12.setFaultRole( "http://test.cz" );
soapFault12.addFaultReasonText( "AAA", Locale.ENGLISH );
soapFault12.addFaultReasonText( "AAACZ", new Locale("cz", "cs") );
Detail detail = soapFault12.addDetail();
SOAPElement soapElement = detail.addChildElement( new QName( "", "detailTest" ) );
soapElement.addTextNode("TEST.");
throw new SOAPFaultException( soapFault12 );
响应在 SOAP 1.2 中,但没有 Role、第二个 FaultResonText 等属性,也没有 Detail 信息。
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header/>
<env:Body>
<env:Fault>
<env:Code>
<env:Value>env:Receiver</env:Value>
</env:Code>
<env:Reason>
<env:Text xml:lang="en">AAA</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
</env:Envelope>
我已经搜索了很多小时并使用它,但仍然不知道必须设置什么。感谢任何帮助。