問題タブ [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.
java - JAXWS: 外部 XSD で定義された CXF 生成のクラス名を変更するには?
wsdl から生成されたクラスの名前を変更しようとしています (wsdl または xsd ファイルを直接変更したくありません)。問題は、その定義が別の xsd ファイルにあることです。
wsdl の構造は次のようになります。
main.wsdl:
typedef.wsdl:
FooBar.xsd:
ここで、FooType クラスの名前を Foo に変更するとします。これを読んだ後: JAXB: XSD で属性タイプが指定されている場合、XJC で生成されたクラス名を変更する方法は? 次のバインディング ファイルを作成しました。
jaxws_bindings.xml:
しかし、私が得るのはエラーだけです:
頭に浮かんだことはすべて試しましたが、まだ成功に近いものはありません。誰でもこれを行う方法を知っていますか?
PS: クラスを生成するには、pom.xml で次の構成で maven cxf codegen プラグインを使用します。
maven - maven wsdl2java 構成が正しく機能しない
Maven経由でwsdl2javaを実行しようとしていますが、いくつかの異なる方法を試しましたが、完全には成功しませんでした。私がそれをやっていた最初の方法:
このバージョンは、org.apache.axis.wsdl.WSDL2Java への呼び出しにより、私が探している正確な構造を作成しますが、それを超えて他の Maven プラグインを続行することはありません。main などを実行してログを終了します。
私が試した他の方法:
この実行の問題点は、以前の実行よりもはるかに多くの Java ファイルが生成されることです。この大きなファイルセットの互換性を確認したところ、正常に動作することがわかりましたが、最初の例と同じ Java クラスで強制的に実行する方法を見つけたいと考えています。ただし、このバージョンは完成し、maven によって呼び出される次のプラグインに進むことができます。
三番:
このバージョンは認識さえされていません...詳細ログでどこにも表示されないため、プラグインを間違って呼び出しているのではないかと思います。
私はかなり検索してきましたが、まだ成功した答えを見つけていません。最初の例を呼び出して次に進むことで、Maven セットアップを実行するシェル スクリプトを作成することに非常に近づいています。どんな助けでも大歓迎です。ありがとう。
java - 定義済みの Java オブジェクトのリストが必要な JAXBElement のリストを取得する
Soap 処理には Apache Camel + JAXB を使用します。Java グラスは、cxf-codegen-plugin と呼ばれる Maven プラグインによって生成されます。
私が直面している問題は、リストであるプロパティを使用したいときです。その場合、正しいクラスのオブジェクトではなく、常に JAXBElement のリストを取得します。
この特定の xml が切り取られたとします。
現在、すべての「ノード」は、タイプ の異なるドメイン オブジェクトの ID ですAANode
。したがって、xsd では次のように定義されます。
そして、いくつかの bindings.xml を定義しました:
私が欲しいのは、次のような POJO プロパティです。
しかし、実行時に実際に得られるのはList<JAXBElement<AANode>>
、ClassCastException につながる です。
編集 1:JAXBElement.class
cxf-codegen フレームワークが、間違っていると思われる
プロパティに注釈が付けられていることを明確に確認できるクラスを生成しているという事実を見逃しました。興味深いことに、手動でアノテーションを AANode.class に変更すると、IllegalAnnotationException: AANode" で失敗するか、そのサブクラスのいずれもこのコンテキストに認識されません。
java - cxf-codegen-plugin および「2 つの宣言により、ObjectFactory クラスで衝突が発生します。」
外部サービスと統合する Java SOAP クライアントを生成しようとしています。これは外部の会社であるため、WSDL への変更はオプションではありません。
cxf-codegen-plugin Maven プラグインを使用してクライアントを生成しようとすると、次のエラーが発生します。
この問題は、WSDL の次の宣言に関連しています。
問題がどこにあるかは明らかです。私の問題は、WSDL がオンラインの一般的な SOAP クライアントによって正常にインポートされるように見えるため、少なくとも有効である必要があることです。-p
また、オプションなしで Java コードを生成すると、ジェネレーターが別のパッケージを作成することになり、問題が解決されることも読みました。しかし、cxf-codegen-plugin Maven プラグインを使用してこれを行うにはどうすればよいですか?
java - wsdl の CXF wsdl2java listwrapper はラップ解除する必要があります
私は現在、古い軸の wsclient を cxf(jaxb databinding) クライアントに更新しています。現在、違いがあり、どのようlist/array
に処理されますか。
例を挙げて説明しましょう:
wsdl
他のcomplexTypeにある
cxf でこの属性にアクセスしようとすると、さらにリスト ラッパーから値を取得する必要があります。
Axisはこれを自動的にアンラップし、配列を取得しただけです
私の質問は、cxfでこれを行うことは可能ですか?
私のwsdlの一部:
java - CXF codegen に @XmlRoot アノテーションを追加したい
次のエントリを含む WSDL ファイルがあります。
次の設定で CXF Codegen プラグインを使用します。
生成された Java コードは次のようになります。
問題は、ここに @XmlRootElement がないことです。のような別の同様の質問がありました
- 生成されたすべてのクラスの継承を追加するために Jaxb バインディングを使用する maven-cxf-codegen-plugin
- CXF (wsdl2java) で生成されたパッケージに注釈を付ける
- クラスの jaxb アノテーションを外部で作成する
他の回答が述べたように、バインディングファイルを配置できます。そこで、次の内容のバインディング ファイルを作成しました。
そして、POM.XML に次のブロックを追加しました。
その後、エラーメッセージが表示されました:
そのため、complexType が OutputMapping1 の場合、@XmlRootElement を OutputMapping1.java に "GetList_11Response" という名前で配置することをどのように正確に記述できるかわかりません。
gradle - Gradle への cxf-codegen-plugin ポート
このプラグインが Gradle で行うことを複製しようとしています。私が実行した場合:
...それから私は得る:
私が知る限り、行は同じですが。何が間違っているのでしょうか?
java - cxf-codegen が Maven で機能せず、「Nothing to Generate」という結果になる
cxf-codegen を Maven プラグインとして使用していますが、wsld からコードが生成されません。Maven はビルドの成功を通知しますが、「生成するものがありません」というメッセージを表示します
完全なpomファイルを含めました。依存関係がありませんか?