問題タブ [wsimport]
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 - Exchange EWS のプロキシ クラスを生成できませんでした: 要求されたターゲットへの有効な証明書パスが見つかりません
EWS のプロキシ クラスを生成したい ( http://msdn.microsoft.com/en-us/library/dd877045%28v=exchg.140%29.aspx )。
しかし、次のエラー メッセージが表示されます。
java - JAX-WS Maven Plugin (wsimport) を使用して WebServices の例外階層をチェック
私は、チェックされた例外を使用して、(たとえば) 間違った入力や間違ったアクションをユーザーに通知したいプロジェクトに取り組んでいます。このような例外には、次のような階層が必要です。
Maven, jaxws-maven-plugin
, goalを使用して、WSDL/XSD (contract-first アプローチ) から Java コードを生成しwsimport
ます。
私はこの(http://www.ibm.com/developerworks/xml/library/ws-tip-jaxrpc.html)チュートリアルに沿って進めようとしました(jax-rpc用ですが、jax-wsでも動作するようです)同じように)。私が書いた
ows: 名前空間で定義された型を使用
を実行するmvn clean package
と、次のようになります (getter、setter、ctor、および注釈が削除されます)。
1 つの例外があり、異なるfaultInto
データを保持できるため、これは私が望んでいたものではありません。上記の例外階層を純粋に XSD/WSDL で作成する方法はありますか? ExceptionMessage
クラスはタグから直接生成されるため<message>
、そこで親子を作成する方法を見つけることができませんでした。
java - wsimport によって XSD からインポートされた Enum のコメント
wsimport を使用して XSD から Java コードへのコメントを取得する方法はありますか? たとえば、XSDファイルがあります
生成された Java 列挙型クラスを次のようにします。
これは最初にコントラクトでも可能ですか (例: XSD から生成された Java コード)?
java - 同じMavenプロジェクトでのWebサービスの作成と使用
Webサービスを含むMavenプロジェクトであるOSGiバンドルを構築しようとしています。@WebService
使用しているWebサービスを指定するために、すべてのアノテーションを含むJAX-WSを使用しています。これらのWebサービスを通常使用しているクライアントの場所にロードし、wsgen
WSDLwsimport
ファイルをエクスポート/インポートします。jaxws-maven-pluginを使用してこれを行う予定ですが、ここに問題があります。
バンドルは、サーバーとクライアントとして同時に機能できます。同じバンドルの親ノード(別のJVM /ホストで実行)にクライアントとして登録できます。したがって、このMavenプロジェクト/バンドルは、Webサービスのインターフェースを定義し、このインターフェースを実装する実装クラスを定義します。インターフェイスとクラスの両方@WebService
が通常どおりアノテーションを使用します。
そして、私のコードのどこかに:
jaxws :wsgenゴールは注釈を読み取り、出力ファイル(.classファイル、.javaファイル、WSDLファイル、構成に応じて...)を作成します。しかし、同じ実行のjaxws:wsimportゴール中にこれらのファイルを使用するにはどうすればよいですか?mvn package
同じMavenプロジェクトで、このWebサービスを使用したいので、次のように記述する必要があります。
jaxws:gen
目標は、process-classes
コンパイルされたクラスを読み取る必要があるため、フェーズで実行されますが、コンパイルのためにすべてを準備するjaxws:import
には、フェーズで実行する必要があります。generate-sources
そして今、私は鶏が先か卵が先かという問題に直面しています。を介して出力ファイルを生成するには、コンパイルされたクラスが必要ですが、Mavenのフェーズでのforwsgen
の出力ファイルが必要です。私の最初の試みは、目標をフェーズにも割り当てることでしたが、クラスが欠落しているか、まだコンパイルされていないため、もちろん機能しません。wsgen
wsimport
generate-sources
jaxws:wsgen
generate-sources
この問題を解決するための私のオプションは何ですか?フェーズの前にいくつかのクラス(つまり、アノテーション付きのクラスのみ)antrun
をコンパイルして、それを(そのフェーズで)使用できるようにするという目標を実行し、フェーズで使用される出力ファイルを作成する必要がありますか?この鶏が先か卵が先かという問題を解決する他の方法はありますか?同じMavenプロジェクトでWebサービスのサーバーとクライアントの部分をコンパイルするための他の「Mavenの方法」はありますか?ところで、それはすべきです。クリーンビルドから実行するので、「 2回実行して最初にWebサービスファイルを生成し、次に他のすべてをコンパイルする」などのソリューションは必要ありません。言い換えると、mavenプロジェクト/osgiバンドル全体をコンパイルする必要があります。@WebService
generate-sources
jaxws:wsgen
jaxws:wsimport
generate-sources
mvn clean
mvn package
mvn clean package
wsdl - ローカルWSDLファイルを使用したMetroクライアントの生成
以前にwsimportを使用してMetroクライアントを生成しましたが、その場合、WSDLはhttps経由でアクセスされました。私のコンマは次のようになりました:
そして、すべてがうまくいきました。現在、クライアントを生成しようとしていますが、WSDLファイルのローカルコピーしかありません。私のプロジェクトディレクトリは次のように設定されています(c:\ Devel内):
wsimport.batファイルは次のようになります。
これはMetroGuideの例に基づいていますが、-pオプションはありません(http://metro.java.net/guide/Developing_client_application_with_locally_packaged_WSDL.html)。ただし、batファイルを実行すると、コマンドの無限ループがコンソールに出力されます。例えば
誰かが私が間違っていることを指摘できますか?
アップデート
絶対パスを使用してみました(そして、パラメータの順序を無駄に並べ替えました。それでも、無限のコマンドコンソールの出力が表示されます。
java - wsimport を使用する Java Web サービス クライアントがホストに接続しない
Cognos のカスタム認証プロバイダーに取り組んでいます。認証リクエストをリッスンする Web サービスがあります。テスト目的で、ユーザー/パスを送信しようとしています (後でセッション情報を使用するように変更されます)。
カスタム プロバイダーを実装する前に、単純な Java コンソール アプリで POC を動作させようとしました。クライアントが Web サービスと通信するのに問題があります。wsimport を使用して、keep フラグを使用してクラスを生成しました。生成された Java ファイルを Eclipse プロジェクトに取り込み、次のようなメイン メソッドを作成しました。
サービスの URL も指定してみました (末尾に「?wsdl」を追加する場合と追加しない場合の両方):
サービスによって生成される WSDL は次の場所にあります。
wsimport を使用してすべての正しい手順を実行したと仮定します。私が直面している問題は、それが何もしないということです。フィドラーを起動して、ネットワーク トラフィックが発生していないことを確認できます。ユーザーオブジェクトは常に null です。設定する必要があるものはありますか? Web サービスが C#/ASP.NET サービスであることに何かおかしなことはありますか? SOAP 要求構造の使用方法に何か不足していますか?
コンパイル時やコードの実行時にエラーは発生しません。答えを求めて頭を悩ませています!
wsdl - インポートされたXMLスキーマのJAXBとJAXWSを組み合わせる
wsimportを使用するときに、WSDL内でインポートされたXSDのJAXBバインディングを指定するにはどうすればよいですか?
バインディングを追跡しようとしましたが、「// xs:element [@ name='isFoobar']のXPath評価でターゲットノードが空になります」というエラーが発生します。
何か案は?
jaxb - 別々のWSDLファイルが同じオブジェクトクラスを参照していることをwsimportに伝えるにはどうすればよいですか?
サーバー上で同じクラスを使用する3つの異なるJAX-WSサービスがあります(たとえば、、、ServiceA
およびServiceB
、ServiceC
すべてがMyCommonClass
パラメーターとして使用されます)。私たちが開発している別のモジュールはwsimport
、これらのサービスのクライアントを作成するために使用していますが、問題は、wsimportがMyCommonClass
サービスごとに個別のインスタンスを作成することです。
com.company.servicea.endpoint.MyCommonClass
com.company.serviceb.endpoint.MyCommonClass
- 等
このオプションを使用してエンドポイントごとに共通のパッケージを指定できることはわかっていwsimport -p
ますが、ほとんどのクラスを別々のパッケージに保持したいのですが、特定の共通のパッケージを共有するだけです。私が読んだことから、JAXBバインディングファイルが役立つかもしれないように思えますが、望ましい結果を達成するための正確な構文はまだわかりません。サービスごとに個別のバインディングファイルが必要になると思います(各サービスに対してwsimportを1回呼び出すため)。これは次のようになります。
私は正しい方向に進んでいますか?または、問題に対する代替の解決策はありますか?
binding - 型生成中に jaxb バインディングを使用して XmlType.namespace を置き換える
Web サービス アプリケーションを Axis から JAX-WS に移行しようとしていますが、一部の変換で問題が発生しています。私の主な問題は、同じタイプがわずかに異なって定義されているが、同じ名前の XSD がいくつかあることです。wsimport 中に、外部の JAXB バインディング ファイルを使用してパッケージを解決できますが、生成されたクラスには同じ @XmlType アノテーションが付けられたままになります。
V1:
V2:
バインディング:
以前は、これは axis が提供する型マッピングで解決されていました (非常に醜い wsdd にハードコーディングしました):
生成された JAXB オブジェクトを再生成するたびに手動で変更せずに、生成された JAXB オブジェクトにカスタム名前空間を持たせる方法はありますか (数百あります)。
java - SOAP クライアント ポートの混乱
SOAP クライアント クラスを生成するために wsimport を使用しています。ただし、問題は、サーバーがポート 8080 で実行されている間、ポート 80 でインターネットからサーバーに到達できるようにするプロキシが存在することです。WSDL では、サーバー ポート 8080 がまだ指定されています。
サーバーに接続すると、クライアントが最初に要求するのは WSDL です。次に、この WSDl で URL を取得し、それを使用してサーバーに接続しようとしますが、ポート 8080 に外部から到達できないため、明らかに失敗します。
この問題を解決する標準的な方法はありますか?
ありがとう。