标签: jaxb-xew-plugin

列表中的Cxf Wsdl2java null条目消失

我用cxf创建了一个带有xew插件的web服务客户端,用于列表展开

问题是null列表中的内容消失了.例如:

我有一个List<String>带有字符串和null-entry的请求

当请求现在到达服务器时,它只包含字符串而不是null条目.因此示例列表中只有2个条目.

这里是wsdl的一个例子:

[..]
<!-- the request -->
<xsd:element name="createGroup">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
            <xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="ns2:ArrayOfRole"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
[..]
<!-- the list which will be unwrapped -->
<xsd:complexType name="ArrayOfRole">
    <xsd:sequence>
        <xsd:element maxOccurs="unbounded" minOccurs="0" name="Role" nillable="true" type="xsd:String"/>
    </xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

我正在使用maven来生成ws客户端

<properties>
    <cxf.version>3.0.5</cxf.version>
    <jaxbBasic.version>0.6.5</jaxbBasic.version>
</properties>
[..]
<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>src/main/java</sourceRoot>
                <defaultOptions>
                    <bindingFiles>
                        <bindingFile>${basedir}/jaxbBindings.xml</bindingFile>
                        <bindingFile>${basedir}/jaxwsBindings.xml</bindingFile>
                    </bindingFiles> …
Run Code Online (Sandbox Code Playgroud)

cxf wsdl2java jax-ws jaxb jaxb-xew-plugin

12
推荐指数
1
解决办法
923
查看次数

com.sun.tools.xjc.Plugin:Provider <plugin>不是子类型

我有一个使用Maven构建的CXF JAX-RS应用程序.我正在努力将其转换为Gradle,但使用Ant XJC任务.

当前版本使用了几个扩展,其中一个是"元素包装"插件的副本,另一个是"jaxb-fluent-api".

我尝试将这两个插件的jar放入xjc类路径中,但是当我运行XJC任务时,我得到以下内容:

java.util.ServiceConfigurationError:com.sun.tools.xjc.Plugin:Provider dk.conspicio.jaxb.plugins.XmlElementWrapperPlugin not a subtype

XmlElementWrapperPlugin类扩展了"com.sun.tools.xjc.Plugin".

知道这里发生了什么吗?

如果重要的话,我的xjc插件的Maven配置看起来像这样:

<plugin>
     <groupId>org.apache.cxf</groupId>
     <artifactId>cxf-xjc-plugin</artifactId>
     <executions>
         <execution>
             <id>generate-sources</id>
             <phase>generate-sources</phase>
             <goals>
                <goal>xsdtojava</goal>
             </goals>
             <configuration>
                <extensions>
                    <extension>JAXBXMLElementWrapperPlugin:JAXBXMLElementWrapperPlugin:1.0.0</extension>
                    <extension>net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8</extension>
                </extensions>
                <xsdOptions>
                    <xsdOption>
                        <xsd>${basedir}/src/main/resources/schema/serviceCallResults.xsd</xsd>
                        <packagename>com.att.sunlight.service.domain.serviceCallResults</packagename>
                        <extension>true</extension>
                        <extensionArgs>
                            <extensionArg>-Xxew</extensionArg>
                            <extensionArg>-summary ${basedir}/target/xew-summary.txt</extensionArg>
                            <extensionArg>-instantiate lazy</extensionArg>
                            <extensionArg>-Xfluent-api</extensionArg>
                        </extensionArgs>
                    </xsdOption>
                </xsdOptions>
            </configuration>
        </execution>
     </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这是我的"build.gradle",只有存储库被省略:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'war'

group = 'SunlightDataService'
version = '1.2.4-SNAPSHOT'

sourceCompatibility = 1.6
targetCompatibility = 1.6

repositories {
    ...
}

configurations {
    jaxb
}

dependencies {

    jaxb …
Run Code Online (Sandbox Code Playgroud)

cxf jaxb gradle maven jaxb-xew-plugin

7
推荐指数
2
解决办法
6404
查看次数

如何在xjc命令行上使用JAXB扩展

我在这里正在处理相关问题,但我有一个单独的问题.也许这是同一个问题的一部分,但似乎有所不同.

由于我通过Ant任务和外观运行XJC的问题,我现在正尝试使用JDK中的命令行"xjc"工具运行它.

与原始问题一样,我正在尝试使用"Element Wrapper"和"Fluent API"扩展,因此我的命令行如下:

xjc -extension  -classpath "lib/jaxb-fluent-api-2.1.8.jar;lib/jaxb-xew-plugin-1.4.jar" -Xxew -summary target/xew-summary.txt -instantiate lazy -Xfluent-api schema/serviceCallResults.xsd
Run Code Online (Sandbox Code Playgroud)

这些基本上与我发送给"cxf-jaxb-plugin"Maven插件的参数相同,该插件已经工作了很长时间.不幸的是,这个"xjc"命令行失败了:

无法识别的参数-Xxew

这可能有什么问题?

java jaxb jaxb-xew-plugin

7
推荐指数
1
解决办法
4353
查看次数

如何让xven-jaxws-plugin在xsd生成的类上生成@XmlElementWrapper?

我正在使用maven-jaxws-plugin从我的wsdl,schema中生成java类.它不会在生成的类中生成@XmlElementWrapper注释.从这篇文章我明白我需要使用jaxb-xew-plugin但是我无法使用maven-jaxws-plugin.任何帮助,将不胜感激.这是我试过的配置

<plugin>
    <groupId>org.jvnet.jax-ws-commons</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>2.2</version>
    <executions>
    <execution>
        <goals>
                <goal>wsimport</goal>
            </goals>
            <phase>generate-resources</phase>
            <configuration>
                <xjcArgs>
                    <xjcArg>-no-header</xjcArg>
                    <xjcArg>-Xxew</xjcArg>
                    <xjcArg>-Xxew:instantiate lazy</xjcArg>
                    <xjcArg>-Xxew:delete</xjcArg>
                </xjcArgs>
                <extension>true</extension>

                <wsdlDirectory>${basedir}/src/main/resources</wsdlDirectory>
                <wsdlFiles>
                    <wsdlFile>attribute-service.wsdl</wsdlFile>
                </wsdlFiles>
                <sourceDestDir>${project.build.directory}/generated</sourceDestDir>
                <verbose>true</verbose>
                <keep>true</keep>
                <plugins>
                    <plugin>
                        <groupId>com.github.jaxb-xew-plugin</groupId>
                        <artifactId>jaxb-xew-plugin</artifactId>
                        <version>1.0</version>
                    </plugin>
                </plugins>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

如果它只能与maven-jaxb2-plugin集成,你可以帮我搞网络服务吗?基本上如何指定wsdl以及如何生成Service类?(使用@WebService注释)

谢谢,

Bhagya

wsimport maven-jaxb2-plugin jax-ws-customization jaxb-xew-plugin

5
推荐指数
1
解决办法
9263
查看次数

Maven JAX WS中的Jaxb Xew插件

mvn generate-sources
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder          org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBu
ilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building epay_api 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jaxws-maven-plugin:2.3:wsimport (wsimport-generate-sources) @ api ---
[INFO] Processing: file:/C:/service.wsdl
[WARNING] Using platform encoding (Cp1256), build is platform dependent!
[INFO] jaxws:wsimport args: [-keep, -s, C:\api\src\main\java, -d, C:\api\target\classes,     -verbose, -Xnocompile, -B-debug, -B-no-header, -B-Xxew, -B-Xx
ew:instantiate lazy, -B-Xxew:delete, -B-extension, -B-b C:\api/src/main/res
ources/jaxb_binding.xml, "file:/C:/api/src/main/resources/service.w
sdl"]
[DEBUG] JAXB Compilation started (XmlElementWrapperPlugin.onActivated):
[DEBUG]   buildId         : 2.2.7 …
Run Code Online (Sandbox Code Playgroud)

jaxb2 jaxws-maven-plugin jaxb-xew-plugin

1
推荐指数
1
解决办法
6462
查看次数