如何解决使用spring-ws动态定制SoapFault
我正在使用具有动态wsdl生成功能的spring-ws工作,并且在特定故障的客户端翻译上遇到问题。返回的一般故障都可以解决。
以下是生成wsdl的xsd的示例:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://myservice/createroad/V1"
elementFormDefault="qualified" version="1.0.0">
<xs:element name="CreateRoadRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" type="xs:string"/>
<xs:element name="MaterialType" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CreateRoadResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="resolution" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CreateRoadFault" type="SoapFault"/>
<xs:element name="CreateRoadHeader" type="Header"/>
<xs:complexType name="SoapFault">
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
<xs:element name="Message" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Header">
<xs:sequence>
<xs:element name="Ticket" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
如果我为此服务的该对象返回特定的Fault对象 CreateRoadFault ,则客户端不会将其视为异常。我观察到的是返回的响应状态标头是200。返回通用 Fault 对象时,返回的状态标头是500。
返回的Soap xml对象的修改已完成:
public class DetailSoapFaultDefinitionExceptionResolver implements EndpointExceptionResolver,Ordered
问题1:在客户端的try的catch分支上输入状态标头应为500?
问题2:如何修改spring-ws中 EndpointExceptionResolver 接口的实现之一的返回状态?
问题3:有人有使用spring-ws和自定义Soap Faults的例子吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。