问题描述
我正在使用具有动态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 (将#修改为@)