私はApache CXFを使ってクライアントスタブを生成する方法を知っています。しかし、生成されたクラスを実行しようとすると、JAXWSが使用されます。また、生成されたクラスのインポートクラスはjavaxパッケージからのものであることに気付きました。生成されたクラスをJAXWSライブラリの代わりにApache CXFライブラリを使用するように設定するにはどうすればよいですか?以下はApache CXFをクライアントとして使用するには?
は、私がクライアントスタブを生成するために使用するコードです:
wsdl2java -frontend jaxws21 -wsdlLocation "META-INF/wsdl/WSCustom.wsdl" -client -d C:\Workspace\WSClient\META-INF\wsdl\ "C:\Workspace\WSClient\META-INF\wsdl\WSCustom.wsdl"
こんにちは、@イアン。お返事をありがとうございます。 CXFとビルドインJDKの両方がクラスパス上で使用可能な場合、どちらが優先されますか?また、クラスパスに配置しないでアプリケーションのlibフォルダにだけインクルードする方法はありますか?すでにCXFライブラリを使用している場合、どうすれば確認できますか? – Arci
@Arci私が "クラスパス上で"と言うとき、必ずしも環境変数を設定しなければならないわけではありません、私はちょうどあなたが必要とする方法でアプリケーションに利用できることを意味します(WEB-INF/lib、アプリケーション、コマンドラインアプリケーションの場合は 'java -cp'など)。最初に見つかったものが使用されます - CXFとMetro jarの両方がクラスパス上にある場合は、CXFがアプリケーションに含まれていて、その組み込みのコピーに頼っている場合は、最初にリストされます。 rt.jarのメトロでCXFが勝つはずです。 –
特定の時点でどのファイルが使用されているかを確認するには、[ログレベル](http://cxf.apache.org/docs/debugging-and-logging.html#DebuggingandLogging-Configurelogginglevels)を参照してください。(CXF docsは、インターセプタについての一番上のビットを無視します。これは、送信および受信された生のSOAPメッセージを記録する場合のみです)。 –