生成使用的WSDL2Java /阿帕奇CXF的Web服务代理类(Generating web ser

2019-07-29 06:44发布

我试图生成使用附带的Apache CXF WSDL2Java工具Web服务代理。 生成本身似乎去就好了,但也有在生成文件的一些错误,不存在的构造函数被调用。

该文件提供了一个解决方案:

//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.

于是我开始下载并安装2.2版本的JAX-WS的API。 我发现下面的安装手册,解释如何认可这些新文件: http://dcx.sybase.com/1200/en/dbprogramming/httpserver-jaxws-lesson-two.html我遵循这个指南的每一步,删除旧的生成的文件,并生成新的,但问题仍然存在。

任何提示和/或招数? (当然现在,我使用的是-frontend jaxws21标志产生的代理,但仍)。

Answer 1:

<defaultOptions>
    <frontEnd>jaxws21</frontEnd>
</defaultOptions>

这是我如何解决使用maven的问题:

        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>generate-sources2</id>
                    <configuration>
                        <sourceRoot>${basedir}/target/generated-sources/cxf</sourceRoot>
                        <defaultOptions>
                            <frontEnd>jaxws21</frontEnd>
                        </defaultOptions>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>...</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

编辑:我找到了另一种方式来解决这个使用maven和CXF版本2.7.3。 在你的依赖,加入这些库。 现在您不必须使用jaxws21选项:

    <dependency>
        <groupId>javax.xml.ws</groupId>
        <artifactId>jaxws-api</artifactId>
        <version>2.2.9</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.2.7</version>
    </dependency>


文章来源: Generating web service proxy classes using wsdl2java/Apache CXF