CXF wsdl2java没有为成员生成Javadoc

Mar*_*tör 7 cxf wsdl2java

wsdl2java从CXF 2.7.5开始运行

<xsd:complexType name="baseTaxParametersEnhanced">
  <xsd:annotation>
    <xsd:documentation>
      Some type comment.
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
    <xsd:element name="municipality" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>
          Some member comment.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:element>
    <xsd:element name="zip" type="xsd:string" />
Run Code Online (Sandbox Code Playgroud)

BaseTaxParametersEnhanced类生成Javadoc 但不为该municipality成员生成Javadoc .

这出乎意料,我没有在文档中提到打开/关闭此标志的标志?

Daw*_*tel 9

不幸的是,没有什么可以轻松解决它.wsdl2java使用引擎盖下的xjc来生成类.为此提出了一个老问题(JAXB-172).你可以投票支持它.没有xjc插件可以解决这个问题.有关此问题的更多信息,请参阅如何使生成的类包含来自XML Schema文档的Javadoc.

正如在那里描述的那样,如果您可以控制WSDL/XSD文件,则可以使用嵌入式自定义绑定(jxb:javadoc)替换xsd:documentation.要实现这一点,你应该声明jxb名称空间,例如:

<xsd:schema ... xmlns:jxb="http://java.sun.com/xml/ns/jaxb">
Run Code Online (Sandbox Code Playgroud)

并更改您的类型声明:

<xsd:complexType name="baseTaxParametersEnhanced">
    <xsd:annotation>
        <xsd:appinfo>
            <jxb:class>
                <jxb:javadoc>Some type comment.</jxb:javadoc>
            </jxb:class>
        </xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
        <xsd:element name="municipality" type="xsd:string">
            <xsd:annotation>
                <xsd:appinfo>
                    <jxb:property>
                        <jxb:javadoc>Some member comment.</jxb:javadoc>
                    </jxb:property>
                </xsd:appinfo>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="zip" type="xsd:string" />
    </xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

此解决方案的问题是其他WSDL/XSD工具无法识别这些注释.

如果您无法控制WSDL/XSD,则可以使用外部JAXB绑定执行相同操作,但这似乎过多.

如果可以,请总结一下upvote提到的问题.也许有一天有人决定实施该功能是时候了.

编辑

我认为奇怪的是,人们不能使用XJC插件来执行这样的任务(其中一条评论来自上述问题)我决定尝试编写这样的插件.

结果可以在这里找到:https: //github.com/destin/xjc-javadoc-plugin

目前,它仅向复杂类型的字段(不是getter或setter)添加注释.我真的很感激任何改进的建议.当我认为它足够稳定时,我会尝试将它贡献给CXF项目,以便任何人都可以轻松使用它.