程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring WS:如何获取和保存XSD验证错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring WS:如何获取和保存XSD验证错误?

开发过程中遇到Spring WS:如何获取和保存XSD验证错误的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring WS:如何获取和保存XSD验证错误的解决方法建议,希望对你解决Spring WS:如何获取和保存XSD验证错误有所启发或帮助;

您可以扩展PayloadValIDationInterceptor和重新定义方法

protected Boolean handlerequestValIDationErrors(messageContext messageContext, SAXParseException[] errors)

如果看一下标准实现(在此处可用),您会看到它如何转储所有解析错误。您还可以转储传入的消息,因为您可以访问messageContext及其getrequest()方法。你的课应该是这样的

public class PayloadValIDationgInterceptorCustom extends
PayloadValIDaTingInterceptor {

@OverrIDe
protected Boolean handlerequestValIDationErrors(messageContext messageContext, SAXParseException[] errors)
        throws transformerException {
    messageContext.getrequest().writeto(/*place your Outputstream here something like a ByteArrayOutputStream*/); //use this if you want to dump the message
    for (SAXParseException error : errors) {
        //dump the each error on the db o collect the stack traces in a single String and dump only one or to the database
       /*you can use something like this
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
         error.printstacktrace(pw);
         sw.toString();
         to get the stack trace
        */

    }
    return super.handlerequestValIDationErrors(messageContext,errors);

}

解决方法

我将SpringWS用于我的肥皂服务,并以此进行验证。

 <sws:interceptors>
    <bean id="payloadValidaTingInterceptor" class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidaTingInterceptor">
        <property name="scheR_145_11845@a" value="/scheR_145_11845@as/my.xsd"/>
        <property name="validaterequest" value="false"/>
        <property name="validateResponse" value="true"/>
    </bean>



@PayloadRoot(namespace = NAMESPACE,localPart = "serviceProvider")
@ResponsePayload
public serviceProviderTxn getAccountDetails(@requestPayload serviceProviderrequest)
{ ...}

这可以正常工作,但是当出现错误时,它会在到达终点之前返回spring产生的错误响应,所以我再也没有机会处理它们。但是我希望能够
记录并将完整的错误消息保存到数据库 。我发现的一种方法是在另一个问题中做类似的事情。

但这并没有我想要的。

大佬总结

以上是大佬教程为你收集整理的Spring WS:如何获取和保存XSD验证错误全部内容,希望文章能够帮你解决Spring WS:如何获取和保存XSD验证错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。