gpt4 book ai didi

java - 修改从 wsdl 生成的 java 类的包名

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:14 24 4
gpt4 key购买 nike

如何修改从多个 wsdls 生成的 java 类的包名称。我有两个 wsdls,它们都在生成 ObjectFactory、package-info 等具有完全相同的包名称的类。因此,我无法在我的代码中组织导入。我的 wsdls 包看起来像这样 -

WSDL A
com.test.customerinfo.dto
com.test.customerinfo.exceptions
com.test.customerinfo.service

WSDL B
com.test.customerinfo.dto
com.test.customerinfo.exceptions
com.test.customerinfo.service

我希望它看起来像这样 -

WSDL A
com.test.customerinfo.dto
com.test.customerinfo.exceptions
com.test.customerinfo.service

WSDL B
com.testOne.customerinfo.dto
com.testOne.customerinfo.exceptions
com.testOne.customerinfo.service

我试过了,但是没用-

<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>target/generated-sources/test/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/wsdl/test/GetInfo.wsdl</wsdl>
<extraargs>
<extraarg>-server</extraarg>
<extraarg>-client</extraarg>
<extraarg>-impl</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://dto.customerinfo.test.com/=com.test.customerinfo.dto</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://services.customerinfo.test.com/=com.test.customerinfo.services</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://exceptions.customerinfo.test.com/=com.test.customerinfo.exceptions</extraarg>
</extraargs>
<frontEnd>jaxws21</frontEnd>
<faultSerialVersionUID>1</faultSerialVersionUID>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>

请指教。

最佳答案

cxf-codgen-plugin 中,您可以在 wsdlOptions 部分指定包映射:

<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
...
<configuration>
...
<wsdlOptions>
<wsdlOption>
...
<packagenames>
<!-- Package Mappings -->
<packagename>http://namespace.example.com/=com.test.package</packagename>
</packagenames>
...
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>

或者你也可以使用extraarg:

<wsdlOptions>
<wsdlOption>
...
<extraargs>
<extraarg>-p</extraarg>
<extraarg>http://namespace.example.com/=com.test.package</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>

关于java - 修改从 wsdl 生成的 java 类的包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com