大佬教程收集整理的这篇文章主要介绍了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,请注明来意。