2

我有一堆非常简单的功能。每个函数都有一个输入和一个输出。

OutputType function func(InputType);

输入/输出的类型在 xsd 模式中定义,并使用 JAXB/XJC 生成到 java 类中。现在我想将这些功能公开为在 Geronimo 上运行的 WSDL Web 服务。

我只是看了一下 Axis/WSDL2Java/Java2WSDL;我认为这与创建函数的方式非常相似。

我想,我可以使用 Java2WSDL 从我的函数和输入/输出类型生成 WSDL。然后使用一些工具来生成服务器/客户端绑定,

任何人都可以提供更多进一步的建议吗?特别是我在 xsd 模式中定义了函数的输入/输出。

非常感谢。

总结:


这些就是我现在所拥有的......

许多实现了一个输入和一个输出的功能。

public OutputType functionXXX(InputType in) { ....; 返回输出;}

InputType 和 OutputType 已经在 xsd 模式中定义(并使用 Jaxb/xjc 转换为 java 类)。


我想要的是......

构建 Web 服务来执行这些功能。不要触摸已实现功能的代码。使用 WSDL,

4

2 回答 2

2

我在这里找到了一个使用CXF来做你想做的事情的教程。

该文件声称使用的是合同优先方法,但事实并非如此。在讨论基于 SOAP 的服务时,契约优先意味着首先创建描述符(WSDL、XSD)。然后,您可以从这些描述符生成任何代码工件。关于原作者用词的争论,可以看原博文中的评论。

话虽如此,合同优先方法有很多好处,具体取决于您要完成的工作。有关它的一些信息,请参阅Spring Web Services教程。

于 2009-10-12T19:07:26.327 回答
1

如果您有一个现有的模式,并为其现有 JAXB2 绑定,那么根据我的经验,Spring WebServices是迄今为止将其公开为 SOAP Web 服务的最简单方法。它的理念是“合同第一”,这正是你所拥有的。您不需要生成任何额外的绑定,只需使用 Spring MVC 连接端点,插入编组器,然后就可以了。它会内省你的模式,寻找看起来像操作的东西,并自动将它们公开为 WSDL 操作(如果默认的自动发现不能正常工作,你可以告诉它如何做到这一点)。

于 2009-10-12T21:47:30.673 回答