解决Error reading XMLStreamReader: Unexpected character '&' (code 38) in prolog报错
请求webservice接口报错:
<soap:Text xml:lang="en">Error reading XMLStreamReader: Unexpected character '&' (code 38) in prolog; expected '<'
at [row,col {unknown-source}]: [7,1]</soap:Text>
问题描述:
测试webservice接口的时候,使用用soapUI或者postman调用时,出现上面的错误
查询资料很多人都说是格式问题,或者是把尖括号替换成&it;>,折腾半天也不是格式问题,尖括号转义后也一样报错。
把前面删除了,就报错后面的文本值,将所有标签中的文本值删除后报错:
Error reading XMLStreamReader: Unexpected EOF in prolog
解决:
后来发现是因为后端过滤器filter增加了xss防注入,导致请求webservice接口的xml格式被屏蔽了。
xss防注入代码:
XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper((HttpServletRequest) request,
"是否过滤富文本","sql特殊字符过滤参数","xss特殊字符过滤参数");
filterChain.doFilter(xssRequest, response);
后面增加过滤条件,指定webservice的接口跳过xss防注入,即可解决问题。
正文到此结束
- 本文标签: Java 报错解决 webservice
- 本文链接: http://www.ysxbohui.com/article/265
- 版权声明: 本文由狂奔的程序猿原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权