注释 CXF (wsdl2java) 生成的包

lbe*_*ski 3 java cxf wsdl2java jaxb

我需要添加包级别注释(XmlJavaTypeAdapters 类型适配器)。问题是,当我运行 wsdl2java 时,它会为该包生成 package-info.java 文件。

当我尝试添加自己的 package-info.java 时,出现错误:“类型 package-ingo 已定义”。

有没有办法将我的注释注入到 package-info.java 中??也许还有其他想法?

谢谢

lbe*_*ski 5

经过一番研究,我使用了外部映射文件。对于所有与我有类似问题的人,我在下面描述了我发现的内容。

如果您使用“cxf-codegen-plugin”从 WSDL 生成源代码,则不能使用带有 package-info.java 的解决方案。这是因为生成的代码可能已经包含这个文件。您也不能向类添加注释,因为它是生成的。唯一的解决方案是提供您自己的映射器。

首先,您必须编写自定义映射器。之后你应该定义 xjb 映射文件,最后在你的 pom.xml 中添加额外的配置。您可以在此处阅读前两个步骤。

要将外部映射文件添加到 cxf-codegen-plugin,您必须在插件定义的配置节点中添加如下内容:

<defaultOptions>
    <bindingFiles>
        <bindingFile>${basedir}/src/main/resources/mapping.xjb</bindingFile>
    </bindingFiles>
    <noAddressBinding>true</noAddressBinding>
</defaultOptions>
Run Code Online (Sandbox Code Playgroud)

请注意,您不应按照此处所述将额外的参数传递给 xjc,因为它不起作用。

希望这会帮助任何人:)