AXiS2 - 返回String值时出现问题。 <和>正在转换为<和>

时间:2011-08-10 18:21:51

标签: java web-services xml-serialization axis2

我编写了一个简单的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;
    }

}

在客户端我得到:

&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;Element&gt;&lt;InnerElement&gt;ElementValue&lt;/InnerElement&gt;&lt;/&lt;Element&gt;

此输入在第三方解析器中使用,该解析器尝试查找&lt;或者&gt;我的申请破了。

有没有人遇到过这个问题?可能是什么问题并解决? 建议非常受欢迎。

2 个答案:

答案 0 :(得分:3)

我承认我不会花很多时间研究它,但是我最后一次查看那里没有很好的定义方法将XML文档作为另一个XML文档的一部分返回,这基本上就是你正在尝试的在这里做从我记忆中读到的,即使在CDATA部分,也可能存在问题。您所看到的是XML中这些字符的标准编码。如果我记得正确的是它的XML标题弄乱了CDATA部分,但是再次,自从我查看它以来已经很长时间了。

HTH

答案 1 :(得分:0)

可能在WSDL中你有xsd:string,所以必须转换特殊字符'&lt;','&gt;'因为这只是字符串。将wsdl文档更改为ex。 XSD:任何