問題タブ [cxf-codegen-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
329 参照

data-binding - WSDL から Java への変換時のクラス名の競合を解決する

CXF を使用して WSDL を Java に変換しています。キーを有効にする-autoNameResolutionと、CXF は同じ内容のファイルを多数生成します。それを回避する方法はありますか?

ネストされた静的クラスを避けるために、有効にしまし<jaxb:globalBindings localScoping="toplevel">た。WSDL 要素でわかるように、「Apple」は 3 回参照されています。残念ながら、WSDL を変更することはできません。CXF は 、それに応じて Apple.java、Apple2.java、Apple3.java-autoNameResolutionを作成するか、フラグが設定されていない場合にクラッシュします。

wsdl2javaにApple2.javaと Apple3.javaを作成しないように教え、3 つのケースすべてで Apple.java を参照する方法はありますか? バインディングを使用すると、名前をApple2->PeachApple3->Watermelonなどの別の名前に変更できますが、これは私が探しているものではありません。3 つのリンゴすべてが同じフィールドのセットを持ち、実際には同じであることがわかるでしょうか? それを解決する方法はありますか?cxf によって生成されたコードをリファクタリングするリファクタリング プラグインでしょうか?

0 投票する
1 に答える
1531 参照

java - IllegalAnnotationExceptions: 2 つのクラスが同じ XML タイプ名を持っています。CXF プラグインによって生成されたコード

maven cxf-codegen-plugin (org.apache.cxf) を使用して Java コードを生成する 2 つの WSDL があります。どちらも同じ名前空間を使用し、同じ名前の複雑な型が含まれているため、競合する Java クラス名の問題が発生しました。bindings.xml を使用して解決することにしました。

たとえば、生成されたクラス B2BParameter を TaskServiceB2BParameter に名前を変更したため、競合する名前の問題が発生しなくなりましたが、別の問題に遭遇しました。

これは生成された TaskServiceB2BParameter.java です。

bindings.xml を更新して @XmlType.name を適切に変更するにはどうすればよいですか? または、本当にターゲット パッケージを変更する必要がありますか? 前もって感謝します!