【问题标题】:Does -nexclude work when using JiBX as the CXF databining?使用 JiBX 作为 CXF 数据绑定时,-nexclude 是否有效?
【发布时间】:2013-10-15 02:10:49
【问题描述】:

我正在尝试让 CXF (2.7.7) 使用 JiBX (1.2.5) 进行数据绑定。文档有点粗略,但有报道称它成功了。一个问题是 CXF 不会将配置传递给 JiBX 代码生成器,因此如果您需要做一些需要自定义的事情,例如将 Joda DateTime 映射到 XML Schema 日期,您需要能够告诉 CXF 忽略特定的命名空间,然后处理那些单独调用 JiBX。

我看到的示例为此使用了 CXF -nexclude 标志,如

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <executions>
        <execution>
            <id>generateSources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
            <configuration>
                <sourceRoot>${generated-sources.dir}/cxf</sourceRoot>
                <wsdlRoot>${wsdl.dir}</wsdlRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${wsdl.dir}/GetCounters.wsdl</wsdl>
                        <dataBinding>jibx</dataBinding>
                        <extraargs>
                            <extraarg>-nexclude</extraarg>
                            <extraarg>http://www.example.com/counters/</extraarg>
                        </extraargs>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

我已经尝试过命名空间的内联和导入版本,但 -nexclude 标志似乎不适用于 JiBX。一种选择可能是让 JiBX 在不调用 CXF 插件的情况下执行整个 WSDL,但显然这会在生成的服务代码中产生问题。一个丑陋的解决方法可能是让 JiBX 只为这个命名空间中的类重新生成代码,覆盖由 CXF 创建的代码。

可以使 -nexclude 标志起作用吗?

【问题讨论】:

    标签: wsdl cxf jibx


    【解决方案1】:

    我在使用 jaxb 时遇到了类似的问题。这对我有用:

    将额外参数从 wsdlOption 部分移到 defaultOptions 部分。

    <plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cfx.codegen.version}</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <defaultOptions>
                    <extraargs>
                        <extraarg>-nexclude</extraarg>
                        <extraarg>http://domain.company.org/v1/schema1</extraarg>
                        <extraarg>-nexclude</extraarg>
                        <extraarg>http://domain.company.org/v1/schema2</extraarg>
                    </extraargs>
                </defaultOptions>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdlArtifact>
                            <groupId>org.company</groupId>
                            <artifactId>application-contract</artifactId>
                            <version>${contract.version}</version>
                            <type>wsdl</type>
                        </wsdlArtifact>
                    </wsdlOption>
                </wsdlOptions>
                <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      相关资源
      最近更新 更多