如何处理/覆盖SOAP响应中的Fault

时间:2018-09-24 05:23:15

标签: axis2

当肥皂请求中包含无效字符(例如:<,>和..)时,例如:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://person.ws">
<soapenv:Header/>
<soapenv:Body>
<per:login>
     <!--Optional:-->
     <per:args0><dfg</per:args0>
     <!--Optional:-->
     <per:args1>secret</per:args1>
  </per:login>
</soapenv:Body>
</soapenv:Envelope>

我们得到以下回应:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
  <soapenv:Fault>
     <faultcode>soapenv:Server</faultcode>
     <faultstring>com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '&lt;' (code 60) excepted space, or '>' or "/>"
at [row,col {unknown-source}]: [6,25]</faultstring>
     <detail/>
  </soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

我们在<faultstring>中得到了堆栈跟踪,有什么方法可以获取用户定义的错误消息而不是堆栈跟踪。 我们可以覆盖AxisServlet中的handleFault()方法还是请提供处理错误的示例以显示自定义消息?

已经在axis2.xml中将参数sendStacktraceDetailsWithFaults设置为false

<parameter name="sendStacktraceDetailsWithFaults">false</parameter>

0 个答案:

没有答案