我找不到任何地方如何使用 JAXWS 从 wsdl 的服务器骨架(java pojo's)创建 Web 服务。我看到的唯一教程是在 NetBeans 中使用自动向导和在 eclipse 中使用axis2。有人可以给我关于如何从给定的 wsdl 生成服务器端类的提示吗?
谢谢
更新:
我只需要这样做:
wsimport.bat -Xendorsed SOAP.WSDL
并创建工件。但是现在我如何在服务器中实现它?
除了客户端类之外,wsimport 还生成一个 SEI(服务端点接口)。您需要做的就是为此创建一个实现。
然后它应该准备好部署到您的应用程序服务器中。
答案扩展:
如果您使用 Metro,这是一个关于如何将您的 SEI 和 SIB(服务实现 Bean)映射到配置文件并准备好部署的教程。
您可以在使用 maven 或 ant 的构建阶段使用 wsdl2j 执行此操作。maven 的 cxf codegen 插件也相当不错。
正如kevin所指出的,这可以用cxf来完成。他们还维护一个Maven 插件。
下面是一个关于如何生成服务器端实现框架的示例:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.7</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/gen</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/webapp/WEB-INF/wsdl/yourWsdl.wsdl
</wsdl>
<wsdlLocation>classpath:wsdl/yourWsdl.wsdl</wsdlLocation>
<!-- Generate WS impl Skeleton -->
<extraargs>
<extraarg>-impl</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
该-impl
选项将创建一个框架类,为您的服务器端(提供者)接口impl
提供基本实现。@WebService
请注意,这也会创建一个Service
类(消费者/客户端)。