2011-10-24 35 views
1

如何使用Eclipse/AXIS2 POJO服务返回任意XML文档?如何使用Eclipse/AXIS2 POJO服务返回任意XML文档

有关完整的背景细节,看到这个问题: Java Web Service returns string with &gt; and &lt; instead of > and <

部署Web服务,我有一个定义我的服务的接口的类的动态Web项目。我关心的方法返回一个String类型。要创建和部署Web服务,我右键单击该类(包含在动态Web项目中)并选择创建Web服务,在此我指出我想要一个“自下而上的Java Bean Web服务”,并且服务实现来自在我的动态web项目中的类。这启动我的服务并创建一个WSDL,其中定义了我的端口和端点。

wsdl的类型部分是根据将成为服务的代码自动生成的。 intrest的函数有一个org.w3c.DOM.Document,它保存我想要返回的XML。此文档被转换为字符串并返回,因为Document对象不是序列化的并且没有公共构造函数。是否还有另一种类型可用作我的函数的返回类型,该类型将通过服务调用保存XML结构?

回答

2

我不认为这可以通过您使用的技术和流程来完成。

理想情况下,你可以只返回一个org.w3c.dom.Document(或在该框架内可比的DOM对象),它会提供“任何”类型的WSDL但不幸的是,它似乎并没有这样的工作。 AXIS2是强类型的,需要数据绑定技术(例如ADB,XmlBeans,JiBX,可能是JAXB)来请求和响应数据。它似乎支持<xsd:any><xsd:anyType>元素通过AXIOM services,但这是一种不同的实现风格比您正在使用。

看到这个有趣的讨论"Unknown type can not serialize" Exception。此外,这里是一个相关的SO问题,AXiS2 - Problem in returning the String value. <and> are getting converted to &lt; and &gt;

+0

您提供的AXIS2链接解释了我可以对我的情况做得非常好,谢谢。我现在正在修改我们的服务调用结构以允许正确的返回响应。 – Sababado