我正在使用maven脚本生成与WCF服务通信所需的Java代码。我已经进行了通信,并准备将我的maven脚本和它生成的代码与项目中的其余java代码集成在一起。
但是,我不能让maven生成具有我想要的正确包名的代码。根据我在网上读到的内容,我应该使用标签,我已经看到了两个可能的地方。我已经包括了脚本的片段,我认为这些都需要放进去,而且它们都在那里。但是,这些标记不会产生任何影响,并且代码会像没有它们时一样生成代码
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<configuration>
<packageName>com.name.server.cxf</packageName>
<sourceRoot>src/com/server/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>src/com/server/cxf/code-generation/service.xml</wsdl>
<bindingFiles>
<bindingFile>src/com/server/cxf/code-generation/javabindings.xml</bindingFile>
</bindingFiles>
<extraargs>
<extraarg>-validate</extraarg>
<extraarg>-client</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-xjc-verbose</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
<verbose />
</configuration>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<packageName>com.name.server.cxf</packageName>
</configuration>
</execution>
</executions>
</plugin>也许我用错了标签,或者它放错了地方?
发布于 2012-03-22 02:59:01
将<extraarg>-p</extraarg><extraarg>com.name.server.cxf</extraarg>添加到<extraargs>部分的<wsdlOption>标记内。以下(略有不同的版本)适用于我。
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>src/com/server/cxf/code-generation/service.xml</wsdl>
<bindingFiles>
<bindingFile>src/com/server/cxf/code-generation/javabindings.xml</bindingFile>
</bindingFiles>
<extraargs>
<extraarg>-validate</extraarg>
<extraarg>-client</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-xjc-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>com.name.server.cxf</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>或者,使用content -p com.name.server.cxf在src/com/server/cxf/code-generation/中创建文件service-options
发布于 2015-08-13 14:31:43
这对我来说非常有效:
<wsdlOption>
<wsdl>src/main/resources/wsdl/my_wsdl.wsdl</wsdl>
<extraargs>
<extraarg>-p</extraarg>
<extraarg>http://services.demo.es/=com.my.package.demo1</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://tempuri.org/=com.my.package.demo2</extraarg>
<extraarg>-exsh</extraarg>
<extraarg>true</extraarg>
<extraarg>-client</extraarg>
<extraarg>-wsdlLocation</extraarg>
<extraarg></extraarg>
</extraargs>
</wsdlOption>发布于 2017-08-14 17:53:30
使用
命令对上述解决方案执行
<extraarg>-p</extraarg>
<extraarg>com.name.server.cxf</extraarg>正在更改单个包下生成的源代码的包名,因此ObjectFactory类将被覆盖。我需要类似的包结构,因为它基于wsld。以及附加的包。
示例java类生成为com.service.name.mypackage.a、com.service.name.mypackage.b、com.service.name.mypackage.c
https://stackoverflow.com/questions/9810422
复制相似问题