問題タブ [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.
weblogic12c - クラス [com.sun.xml.ws.assemblyr.jaxws.HandlerTubeFactory] は [com.sun.xml.internal.ws.assemblyr.dev.TubeFactory] インターフェイスを実装していません
cxf-codegen-plugin を使用して wsdl2java から Java コードを生成しようとしました。コードが生成され、Eclipse テスト クラスで応答を確認できます (いくつかのメソッドを呼び出して、結果を適切に取得しようとしました)。しかし、このコードの jar を作成して Weblogic サーバーのクラスパスに移動すると (この wsdl2java 生成コードを呼び出す jsp ページはほとんどありません)、メソッドを適切に呼び出しますが、毎回ランタイム例外が発生します。
注: 依存するすべての jar も weblogic クラスパス内に移動しました。
以下は、例外のスナップショットです。
以下は、私が呼び出してエラーを取得しているメソッドです。
私のPOM.xmlの下
xsd - Apache CXF で生成された JAXB クラスには、外部スキーマ/XSD の空白/空の "" 名前空間を持つ @XMLElement があります
Apache CXF maven cxf-codegen-plugin (wsdl2java) を使用して、外部 XSD を含む wsdl から JAXB クラスを生成し、XSD で複合型を使用して要素を定義しています。
pom.xml スニペット -
myWSDL.wsdl スニペット -
myXSD.xsd -
生成された MyElement.java -
これらの WSDL および XSD を使用すると、生成された JAXB クラスに明示的に空の名前空間が含まれるため、アンマーシャリング中に問題が発生します。
以下のように WSDL と XSD を変更すると、生成された JAXB クラスは適切になり、アンマーシャリングも正常に機能します。
XSD で複合型の要素を直接作成する -
WSDL で「type」の代わりに「ref」を使用して直接参照する -
次に、生成されたクラス @XmlElement が - に変更されます
しかし、私は提供された WSDL と XSD に自由に触れることができないため、CXF maven プラグインに引数を渡す/バインディング ファイルを使用するなどの解決策/提案を探しています。
java - cxfInstall が null であるため、CXFInstall.getLocation() を呼び出せません
最新の Eclipse IDE (jee-2021-03) と apache-cxf-3.4.2 を使用して、WSDL ファイルから Web サービス クライアントを生成しようとしています。
次のエラーが表示されます。
macOS Big Sur 11.3 (Apple Silicon M1) で AdoptOpenJDK 8 を使用しています。Apache CXF がダウンロードされ、ローカル フォルダーに保存されました。Eclipse の設定で、Web サービス / CXF 2.x の設定の下に、CXF ランタイムが正しく表示されます。他の WSDL を使用しても Web クライアントの生成を実行できないため、WSDL 自体には依存しません。
同じ WSDL を使用して、macOS Big Sur 11.2.1、Eclipse jee-2020-06、apache-cxf-3.3.7、および Java SE 8 (1.8.0_181) を搭載した古い MacBook Pro を使用してクライアントを生成することに成功しました。
Googleでそれに関する情報は見つかりませんでした...
誰かが同じ問題に遭遇しましたか?