1

我正在使用带有 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>

我已经搜索了很多小时并使用它,但仍然不知道必须设置什么。感谢任何帮助。

4

0 回答 0