我编写了一个简单的Web服务,它将字符串作为参数并返回String作为输出。
服务是这样的:
@WebService(name = "MyWebService", serviceName = "MyWebService", portName = "WS")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class MyWebService {
@WebMethod(action = "inputString")
@WebResult(name = "resultString")
public String serviceMethod(
@WebParam(mode = WebParam.Mode.IN, name = "inputString") String inputString) {
resultString ="<?xml version='1.0' encoding='UTF-8'?><Element><InnerElement>ElementValue</InnerElement></<Element>"
System.out.println(resultString);
return resultString;
}
}
在客户端我得到:
<?xml version='1.0' encoding='UTF-8'?><Element><InnerElement>ElementValue</InnerElement></<Element>
此输入在第三方解析器中使用,该解析器尝试查找&lt;或者&gt;我的申请破了。
有没有人遇到过这个问题?可能是什么问题并解决? 建议非常受欢迎。
答案 0 :(得分:3)
我承认我不会花很多时间研究它,但是我最后一次查看那里没有很好的定义方法将XML文档作为另一个XML文档的一部分返回,这基本上就是你正在尝试的在这里做从我记忆中读到的,即使在CDATA部分,也可能存在问题。您所看到的是XML中这些字符的标准编码。如果我记得正确的是它的XML标题弄乱了CDATA部分,但是再次,自从我查看它以来已经很长时间了。
HTH
答案 1 :(得分:0)
可能在WSDL中你有xsd:string,所以必须转换特殊字符'&lt;','&gt;'因为这只是字符串。将wsdl文档更改为ex。 XSD:任何