注释CXF(wsdl2java)生成的包
我需要添加包级注释(XmlJavaTypeAdapters类型适配器)。问题是,当我运行wsdl2java时,它会为该包生成package-info.java文件 当我尝试添加我自己的package-info.java时,我得到一个错误:“类型package-ingo已经定义” 有没有办法将我的注释注入包info.java??也许还有其他想法注释CXF(wsdl2java)生成的包,java,jaxb,cxf,wsdl2java,Java,Jaxb,Cxf,Wsdl2java,我需要添加包级注释(XmlJavaTypeAdapters类型适配器)。问题是,当我运行wsdl2java时,它会为该包生成package-info.java文件 当我尝试添加我自己的package-info.java时,我得到一个错误:“类型package-ingo已经定义” 有没有办法将我的注释注入包info.java??也许还有其他想法 谢谢您可以提供JAXB“绑定”,可以内嵌在WSDL中,也可以作为单独的外部绑定文件,JAXB将生成适当的适配器和所需的包级注释。请参阅以获取示例。我从未尝
谢谢您可以提供JAXB“绑定”,可以内嵌在WSDL中,也可以作为单独的外部绑定文件,JAXB将生成适当的适配器和所需的包级注释。请参阅以获取示例。我从未尝试过此方法,但您可以尝试向wsdl2java命令添加-xjc npa标志。理论上,这告诉XJC不要生成package-info.java,而是将所有名称空间等粘贴到所有其他需要的元素上。经过一些研究,我使用了外部映射文件。对于所有和我有类似问题的人,我在下面描述了我的发现 如果您使用“cxf codegen plugin”从WSDL生成源代码,则不能将解决方案与package-info.java一起使用。这是因为生成的代码可能已经包含此文件。您也不能将注释添加到类中,因为它是生成的。唯一的解决方案是提供自己的映射器 首先,您必须编写自定义映射器。之后,您应该定义xjb映射文件,并最终将其他配置添加到pom.xml中。您可以阅读前两个步骤 要将外部映射文件添加到cxf codegen插件,您必须在插件定义中的配置节点中添加如下内容:
<defaultOptions>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/mapping.xjb</bindingFile>
</bindingFiles>
<noAddressBinding>true</noAddressBinding>
</defaultOptions>
${basedir}/src/main/resources/mapping.xjb
真的
注意,您不应该像前面所描述的那样向xjc传递额外的参数,因为它将不起作用
希望这对任何人都有帮助:)我还需要为生成的代码添加注释。在生成java类之后,我使用maven replacer插件来完成这项工作。您可以使用此解决方案修改生成的任何文件 以下是相关的pom.xml位:
com.google.code.maven-replacer-plugin
替代者
${replacer.plugin.version}
过程源
代替
目标/生成的源代码/cxf/com/BLAH/client/api/v4/*.java
目标/生成的源代码/cxf/com/BLAH/client/api/v4/ObjectFactory.java,
目标/生成的源代码/cxf/com/BLAH/client/api/v4/package-info.java,
公共类(\w*)
@XmlRootElement(name=“$1”)${line.separator}公共类$1
导入javax.xml.bind.annotation.XmlType;
导入javax.xml.bind.annotation.XmlType${line.separator}导入javax.xml.bind.annotation.XmlRootElement;
希望这有帮助