gpt4 book ai didi

java - 使用绑定(bind)文件注释 JAX-WS SEI 类

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:02 29 4
gpt4 key购买 nike

我想为从 WSDL 生成的 Apache CXF Web 服务客户端的服务端点实现接口(interface)类添加 Java 注释。

这是我正在使用的绑定(bind)文件,它应该利用 http://confluence.highsource.org/display/J2B/Annotate+Plugin 中的 JAXB Annotate 插件:

<jaxws:bindings wsdlLocation="OptenetServices.wsdl"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:annox="http://annox.dev.java.net"
jaxws:extensionBindingPrefixes="annox">

<jaxws:bindings node="wsdl:portType">
<annox:annotate>
<annox:annotate annox:class="org.jvnet.hk2.annotations.Contract" />
</annox:annotate>
</jaxws:bindings>
</jaxws:bindings>

没有错误,只是没有创建注解。我可以确认已选择节点并使用绑定(bind),因为如果我将 annox:annotate 更改为:

    <jaxws:class name="Renamed">
<jaxws:javadoc>Blah blah</jaxws:javadoc>
</jaxws:class>

接口(interface)已重命名并正确注释。

我不清楚是否可以在这种情况下使用 annox 以及 jaxb 和 jaxws 绑定(bind)之间的关系。

代码生成由 CFX 通过 Maven 处理:

<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl>
<extraargs>
<extraarg>-client</extraarg>
<extraarg>-p</extraarg>
<extraarg>com.example.pkg</extraarg>
<extraarg>-b</extraarg>
<extraarg>${basedir}/src/main/wsdl/bindings.xml</extraarg>
<extraarg>-xjc-Xannotate</extraarg>
<extraarg>-verbose</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.5</version>
</dependency>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

谢谢。

最佳答案

你用<annox:annotateClass>试过了吗?而不是 <annox:annotate annox:class="org.jvnet.hk2.annotations.Contract" />

给出的例子:

这将使用 @SuppressWarnings("all") 注释生成的类 FindApplicationForApplicationSession

<jaxws:bindings node="xs:complexType[@name='findApplicationForApplicationSession']">
<annox:annotateClass>@java.lang.SuppressWarnings(name="all")</annox:annotateClass>
</jaxws:bindings>

关于java - 使用绑定(bind)文件注释 JAX-WS SEI 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24676223/

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