如何从wsdl创建JAXWS Web服务服务器框架(不在IDE中)

时间:2011-10-05 13:43:29

标签: wsdl jax-ws pojo stubs

我无法找到如何从服务器骨架(java pojo)创建Web服务的地方 wsdl使用JAXWS。我看到的唯一教程是在NetBeans中使用自动向导,在eclipse中使用axis2。有人可以给我一些关于如何从给定的wsdl生成服务器端类的提示吗?

谢谢

UPADATE:
我只需要这样做:
wsimport.bat -Xendorsed SOAP.WSDL
它会创建工件。 但现在我如何在服务器中实现它?

3 个答案:

答案 0 :(得分:7)

除客户端类外,wsimport还会生成SEI(服务端点接口)。您需要做的就是为此创建一个实现。

然后它应该准备好在您的应用程序服务器中进行部署。

答案扩展:

如果您使用Metro,this是一个关于如何将SEI和SIB(服务实现Bean)映射到配置文件并准备好部署的教程。

答案 1 :(得分:1)

您可以使用maven或ant在构建阶段使用wsdl2j执行此操作。同样相当不错的是maven的cxf codegen插件。

答案 2 :(得分:1)

正如kevin所指出的,这可以通过cxf完成。他们还保持maven plugin

以下是如何生成服务器端实现框架的示例:

<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类(使用者/客户端)。