gpt4 book ai didi

java - wsdl2java - 如何忽略 cxf-codegen-plugin 中的特定模式并添加依赖项

转载 作者:行者123 更新时间:2023-12-02 03:24:02 25 4
gpt4 key购买 nike

见下文,我有 3 个项目。

Common
Age.xsd (namespace: http://xmlns.common/age)
generated/common/xmlns/age/AgeType.java
pom.xml (cxf-xjc-plugin xsdtojava)


Person
PersonService.wsdl (imports Age.xsd in wsd:types)
generated/com/person/AgeType.java
pom.xml (cxf-codegen-plugin wsdl2java)

Animal
AnimalService.wsdl (imports Age.xsd in wsd:types)
generated/com/animal/AgeType.java
pom.xml (cxf-codegen-plugin wsdl2java)

AnimalService.wsdlPersonService.wsdl 均导入 Age.xsd 架构,如下所述:

<wsdl:definitions xmlns:cn="http://xmlns.common/age"
<wsdl:types>
<xsd:schema>
<xsd:import
namespace="http://xmlns.common/age"
schemaLocation="classpath:/common/xmlns/age/Age.xsd" />
</xsd:import>
</xsd:schema>
<!-- cn:AgeType used in output message -->
<!-- ignored -->
</wsdl:definitions>

问题:

如何告诉cxf-codegen wsdl2java不要为 AgeType(位于命名空间 http://xmlns.common/age 中)生成代码并改用 common.xmlns.age.AgeType通过提供 Common 项目作为依赖项来在各自的项目中使用 com.person.AgeType 和 com.animal.AgeType 吗?

最佳答案

找到答案了。我们需要在 extraarg 中使用 -nexclude ,如下所示,并将 Common 项目依赖项添加到 Animal项目。

<wsdlOptions>
<wsdlOption>
<wsdl>${project.basedir}/src/main/resources/Animal.wsdl</wsdl>
<wsdlLocation>classpath:Animal.wsdl</wsdlLocation>
<extraargs>
<extraarg>-nexclude</extraarg>
<extraarg>http://xmlns.common/age=common.xmlns.age</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>

语法是:

<extraarg>-nexlude</extraarg>
<extraarg>namespace to be excluded=package where the JAXB generated classes available</extraarg>

关于java - wsdl2java - 如何忽略 cxf-codegen-plugin 中的特定模式并添加依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29649570/

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