java - 注释CXF(wsdl2java)生成的包

标签 java jaxb cxf wsdl2java

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

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

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

谢谢

最佳答案

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

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

首先,您必须编写自定义映射器。之后,您应该定义 xjb 映射文件,最后将其他配置添加到您的 pom.xml。您可以阅读前两个步骤 here .

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

<defaultOptions>
    <bindingFiles>
        <bindingFile>${basedir}/src/main/resources/mapping.xjb</bindingFile>
    </bindingFiles>
    <noAddressBinding>true</noAddressBinding>
</defaultOptions>

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

希望这对任何人都有帮助:)

关于java - 注释CXF(wsdl2java)生成的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894811/

相关文章:

java - 当 dataFormat 为 MESSAGE 或 CXF_MESSAGE 时,在 Apache Camel 中创建 SOAP 消息

java - 在 Java 中拖动和捕捉 JLabel

java - 空间复杂度 - 使用现有对象的 Java 对象数组

java - 无法使用 JAXBElement 编码(marshal) XmlJavaTypeAdapter?

java - 如何为 docbook 创建 JAXB 绑定(bind)

soap - 更改 CXF SOAP Fault 中的 HTTP 响应代码

java - 关于 Java 中的字符串不变性

java - 是否有一种模式可以强制在注入(inject)的组件中设置属性?

java - 我如何处理使用 Jaxb 解析的 xml 文件而不是从根元素解析

web-services - 如何同时指定 jaxws 和 jaxb 绑定(bind)以实现@XmlRootElement