1

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

有关完整的背景详细信息,请参阅此问题: Java Web Service return string with > 和 < 而不是 > 和 <

为了部署 Web 服务,我有一个动态 Web 项目,其中包含一个定义我的服务接口的类。我关心的方法返回一个字符串类型。要创建和部署 Web 服务,我右键单击类(包含在动态 Web 项目中)并选择创建 Web 服务,这里我表示我想要一个“自下而上的 Java bean Web 服务”并且服务实现来自我的动态网络项目中的类。这将启动我的服务并创建一个包含我的端口和端点定义的 WSDL。

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

4

1 回答 1

2

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

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

请参阅这个有趣的讨论“未知类型无法序列化”异常。此外,这是一个相关的 SO 问题,AXiS2 - 返回字符串值的问题。< 和 > 正在转换为 < 和>

于 2011-10-24T18:02:29.050 回答