【问题标题】:Spring returning custom soap faults弹簧返回自定义肥皂故障
【发布时间】:2010-11-02 14:20:52
【问题描述】:

我正在使用 spring webservices 将我的服务公开为 web 服务。 我像这样定义了我的肥皂故障元素

<xsd:element name="systemFault">
        <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="faultCode" type="xsd:string" nillable="true"/>
                    <xsd:element name="faultMessage" type="xsd:string"/>
                </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

我在我的 WSDL 中使用它

<wsdl:message name="msgSystemFault">
        <wsdl:part name="body" element="cred:SystemFault"/>
    </wsdl:message>

然后在操作中使用它

<wsdl:operation name="opMyOp">
            <wsdl:documentation>
                Creating an entity note.
            </wsdl:documentation>
            <wsdl:input message="tns:msgMyOpRequest"/>
            <wsdl:output message="tns:msgMyOpResponse"/>
            <wsdl:fault name="fault" message="tns:msgSystemFault"/>
        </wsdl:operation>

但是当我想在我的端点中抛出这个错误时,我该怎么做呢??

【问题讨论】:

    标签: java web-services spring spring-ws


    【解决方案1】:

    您需要一个EndpointExceptionResolver,请参阅有关handling exceptions 的SpringWS 手册。

    SpringWS 自带了一些内置的异常解析,你可以在实现自己的时候将它们作为参考。

    【讨论】:

    • 这似乎不能处理自定义故障,只是一般的服务器故障。
    • 为什么?或者您所说的“自定义故障”是什么意思?看看 SimpleSoapExceptionResolver 及其超类的源代码:fisheye.springsource.org/browse/spring-ws/trunk/core/src/main/… - 你可以看到它没有什么神奇之处,你只需实现 EndpointExceptionResolver 接口并构建你自己的自定义故障。 SpringWS 甚至带有几个抽象类,可以帮助删除大量样板代码。
    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多