Как обработать / переопределить ошибку в ответе SOAP - PullRequest
0 голосов
/ 24 сентября 2018

Когда в запросе на мыло есть недопустимые символы (например: <,>, & ..), пример:

<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>, есть ли способ получить пользовательское сообщение об ошибке вместо stacktrace.Можем ли мы переопределить метод handleFault () в AxisServlet или можете ли вы привести пример обработки ошибки для отображения пользовательских сообщений.

Для параметра sendStacktraceDetailsWithFaults уже установлено значение false в axis2.xml

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