0

CXF (2.7.7) でデータバインディングに JiBX (1.2.5) を使用しようとしています。ドキュメントは少し大ざっぱですが、成功したという報告があります。1 つの問題は、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 では機能しないようです。CXF プラグインを呼び出さずに WSDL 全体を JiBX に実行させるという 1 つのオプションがあるかもしれませんが、これは明らかに、生成されたサービス コードに問題を引き起こします。厄介な回避策は、CXF によって作成されたコードを上書きして、JiBX がこの名前空間内のクラスだけのコードを再生成できるようにすることです。

-nexclude フラグを機能させることはできますか?

4

1 に答える 1