Java soap Web服务,可以接受不同的输入xml和Marshalled,

时间:2014-06-07 18:47:32

标签: java-ee soap jax-ws cxf spring-ws

想法是通过http Web服务开发soap,这需要接受来自不同系统的多个xml输入。然后在请求到达时,检索并保存原始xml,然后将其封送到适当的pojo中。为了使它更灵活,可以在运行时生成pojo。

至于解决方案,考虑了Apache CXF jax-ws,但它需要合同(wsdl)或java,我们在这种情况下没有。 然后考虑CXF提供程序服务(Jaxp)方法但是Source很难解析而且不给原始xml。使用SAX源会在maven java2ws步骤中生成错误。和流源也在返回消息时给出错误。 用于XML消息传递的Java API也是通过Internet建议的方法,但是dint可以找到它的示例 所以最后我没有好的解决方案。

其次,为了被接受,预先实现需要pojo / schema,没有动态的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

没有一种真正动态的方法可以做到这一点。没有你自己尝试的任何例子或事情,很难理解你的问题。

soap / xsd / wsdl的全部内容是所有可能的消息都在模式中定义(合同优先)。这样,双方(客户和服务器)都使用相同的合同,并且应该能够单独开发。

您拥有的唯一选项(我已经多次看到)是使用包含编码XML的(字符串)字段创建服务。您可以提供任何类型的XML,并且仍然可以使用xsd和wsdl验证整个消息。

我不太喜欢这个解决方案,但我认为这是获得动态的唯一方法。