問題タブ [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.

0 投票する
2 に答える
11707 参照

java - jax-ws/wsimport は void return で WebMethod を生成します - 同じ Request/ResponseWrapper

入力メッセージと出力メッセージに同じ要素定義を使用するクライアントの WSDL ファイルを使用していますが、JAX-WS/JAXB で応答を非整列化するのに問題があります。

なぜかwsimportで生成されたコードにvoidが返っており、レスポンス受信時にINOUTパラメータが更新されていないようです。

を呼び出すとport.request( paramOne, paramTwo, requestList )、SOAP 要求がサーバーに送信され、有効な SOAP 応答で応答することがわかります。

ただし、アプリをデバッグ モードで実行するとRequestType、デバッガー変数ビューで各インスタンスを確認できますRequestsTypeが、<xsd:choice>withRequestDataまたはがあるためResponseData、後者は null であり、RequestDataは指定したとおりです。

私は他のプロジェクトで JAX-WS を正常に使用しましたが、その場合@WebResult、WebResult にちなんで名付けられた void 以外の戻り値の型を持つコードが生成されました。このプロジェクトでは、JAX-WS が要求と応答のタイプが同じであり、同じオブジェクトを再利用できると判断したため、WebResult を取得していないと思います。応答?

0 投票する
6 に答える
10482 参照

java - プロキシ例外 URL を使用するように wsimport に指示するにはどうすればよいですか

内部イントラネット Web サービスに接続する必要があります。私の会社ではプロキシ サーバーを使用してインターネットにアクセスしていますが、イントラネット サイトはプロキシを経由しません。IE と Firefox で WSDL に移動できますが、両方のブラウザーでアドレスをプロキシ例外リストに追加する必要があります。

wsimport を使用すると、プロキシ サーバーが原因で WSDL を取得できません。-httpproxy 引数を追加または除外すると、「プロキシを介してトンネリングできません」というエラーが表示されるため、これは必要な方法ではないと推測しています。

このURLのプロキシサーバーを無視するようにwsimportに指示できる方法を知っている人はいますか?

ニール

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

java - Web サービスに関する混乱

別のマシンでコードを実行できるようにしたいTomcatサーバーで実行されている既存のJavaコードがいくつかあるため、Webサービスを検討しています。私は Web サービスに不慣れで、おそらくここで何か間違ったことをしていると思います。

Tomcat で JAX-WS Web サービスをデプロイする方法に関するいくつかのオンライン チュートリアルに従いました。Web サービス クラスを作成し、@WebService で注釈を付け、web.xml および sun-jaxws.xml ファイルを作成し、それらのファイル (および JAX-WS jar ファイル) を .war ファイルにパッケージ化し、それを Tomcat にデプロイしました。 . Tomcat を指すブラウザーで WSDL ファイルをロードできるため、これは機能しているようです。

私が問題を抱えているのはWebサービスクライアントです。まず第一に、データベースにマップされるサーバー側の既存のクラスがあります。クライアントが同じ既存のクラスを使用してインスタンスを作成し、Web サービスを呼び出して、オブジェクトをデータベースに格納できるようにしたいと考えています。しかし、サーバーの WSDL ファイルに対して wsimport コマンドを実行すると、多数の Java クラスが生成され、その多くは既存のクラスに似ています。既存のクラスの代わりにそれらを使用する必要があると思いますか? 私が混乱していない限り、コードの再利用についてはこれで十分です。これは非常に可能です。

これで、wsimport が生成したクラスを使用してクライアントを作成できました。しかし、コンパイルエラーが発生します。既存の Java クラスのフィールドの一部は、java.net.InetAddress 型です。しかし、何らかの理由で、wsimport は独自の InetAddress クラスを生成し、次のようになります。

ええ、それは何もないただのクラスです!だから私が言っているコンパイルエラーの多くは:

java.net.InetAddress を作成しようとしていますが、wsimport によって生成された空のクラスを使用する必要があります。私はここで何か間違ったことをしているに違いありません。教えてください。

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

jaxb - WSImport は、複数の Dynamics CRM 4.0 WSDL に対して競合する XMLType を生成します。

現在、Dynamics CRM 4.0 Web サービスを使用しています。Java/JAX-WS私が最初にしたことは、Web サービスの WSDL に基づいて wsimport を使用して適切なクラスを生成することでした。クラスを生成しているときに、いくつかのエラーが発生しました。

行 979 は次のことを示しています。

そして、12274 行目からは次のようになります。

両方の部分が同じ名前空間にあります。どちらも RetrieveResponse.class として生成されるため、衝突しています。JAX-Bバインディングxmlファイルであるこの問題の解決策を見つけました:

これは機能します (これが正しいアプローチかどうかはわかりません..?)。

この後、Web サービスへの呼び出しを成功させることができました。これは素晴らしいことです。

ここで問題が発生します。動的 CRM の一部のビジネス エンティティはクラスPicklistを使用します。このタイプのエンティティは、メタデータ サービスで照会できます: http://msdn.microsoft.com/en-us/library/bb890248.aspx

次に私が行ったのは、やはり WSDL に基づいて、メタデータ サービスのクラスを生成することでした。生成されたクラスの結果は、私たちが例外としているものではありません。たとえば、クラス「com.microsoft.schemas.crm._2007.webservices.ExecuteResponse」を生成します。ただし、このクラスは、CrmService で生成されたクラスのまったく同じパッケージにも存在します。2つの違いは次のとおりです。

メタデータ サービス ExecuteReponse:

CrmService ExecuteReponse:

現在、このクラスは 1 つの例 (別の例はCrmAuthenticationToken ) にすぎず、別のクラスのほぼ正確な複製です。同じクラスを使用できるようにするために、CrmService クラスに package-suffix を追加しました ( prefix . として表示されます)。そのため、CrmService を呼び出そうとすると、次の例外が発生します。

個人的には、同じパッケージ構造に同じ名前の異なるクラスを配置するのは奇妙だと思います。つまり、2 つの Web サービスを同時に使用することはできません。

これは Microsoft、WSimport のバグですか、それとも私の愚かな間違いですか? 誰かがこの問題で私を助けてくれることを願っています!

御時間ありがとうございます!

0 投票する
2 に答える
2061 参照

web-services - wsimport で解析エラーが発生する

を使用して WSDL をインポートしようとすると、奇妙な解析エラーが発生しwsimportます。

エラー:-

WSDL を確認しましたが、その最初の要素がそうではないことにも驚きました。

むしろ:

これが問題でしょうか?Web サービスは外部にあるため、WSDL を制御することはできません。私が知っていることの 1 つは、それが JAX-WS 2.1.5 によって生成されていることです。私の wsimport ツールが理解できないのはカスタマイズされた WSDL ですか? はいの場合、この問題を解決する方法を教えてください。ありがとう。

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

web-services - wsgenを使用してWebサービスクライアントを生成できません

元の投稿はこちら

Jax WS 2.1.5によって作成され、HTTPSサービスとして公開されているサードパーティのWebサービスがあります(WSDL:-https: //somedomain.com/location/soap/locationfinderservice?wsdl) 。 wsimport。互換性のためにjdk1.6.0_04を使用しています(以前の投稿で説明したJDKバージョンを切り替えました)新しいエラーが発生します

問題は、https://schemas.xmlsoap.org/wsdl/が存在しないことです。この場合、クライアントスタブを生成する方法は?

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

java - Document/literal 形式の WSDL から Web サービスを生成する

wsimport を使用して WSDL から WS を生成する際に問題があります。

WSDL は TMDD v3.0 標準仕様です (WSDL および関連する XSD ファイルはここにあります) 。

IBM のこの記事によると、WSDL は Document/literal 形式のようです。

WSDL をコンパイルするために、いくつかのバインディング/微調整を作成しましたが、このエラーで立ち往生しています (操作に複数の部分があるため、メソッドは生成されません)。

簡単にするために、これは興味深い操作定義のみを含む WSDL の簡略化されたバージョンです。

バインディング ファイル:

wsimport を呼び出すコマンド ラインは次のとおりです。

「DlFullEventUpdateSubscription」操作を正しく作成するにはどうすればよいですか? Java Web サービスを生成する代替手段はありますか? 標準に準拠していないため、操作定義を変更できません。

アップデート。解決

メッセージの各部分がヘッダーと本文に割り当てられるように WSDL を変更することで、なんとか機能させることができました。

0 投票する
2 に答える
1137 参照

java - wsdlから空のクラス(pojos)を生成するwsimport

環境:NetBeans 7.1.2 glassfish 3.1.2

メソッドがpojoを返すWebサービスを作成しました。しかし、IDEでWebService参照を作成すると(またはwsimportを使用して手動で作成すると)、pojo用に生成されたクラスは空になります。次の非常に単純なWebサービスは、問題を示しています。

Webサービスクラス

返されるpojo

Webサービス参照を作成すると、生成されたクラスに対して次のようになります。

生成されたバージョンのPojoに正しい情報が含まれるようにするには、何をする必要がありますか?

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

java - wsimport で生成された Java クラスで使用するパッケージ化された WSDL を組み込むにはどうすればよいですか?

私は C# から来ているので、Java に多くの (優れた) 使いやすさの特徴や機能があるとは期待できないことはわかっていますが、最近この Java プロジェクトに参加したばかりで、まったく理解できません。このアウト。C# / .NET では、Web サービス プロキシ クラスと生成されたデータ コントラクトを作成するのは簡単なことではありませんでしたが、何らかの理由で、Web サービスの Java 実装は適切ではないように思えます。

これが取引です...

wsimport を使用して、生成された .java ファイルを .wsdl ファイルから作成します。例えば...

wsdl の現在の場所 (「C:\Users\ME\etc\wsdl\MyWSDL.wsdl」) として、このハードコーディングされた (そのフレーズを入力すると吐きそうになりました) 「wsdlLocation」に気付きました。だから私はそれを取り出します:

生成されたサービスをインスタンス化すると...

エラーが発生します。「can't find file C:\blahblah\Temp\NULL」の行に沿った何か。わかりました... 製図板に戻ります。これを少し調べた後、wsdl の場所として "classpath:META-INF/WSDL.wsdl" を使用することについて話している Stack Overflow の投稿を見つけました。

エラー!

奇妙なことに、Stack Overflow の投稿が回答としてマークされました。過去2年間で、「クラスパス:」がサポートされなくなったか、これを行う別の方法があるところまでかなりの量が変化した可能性があると思いますが、それを理解する/答えを見つけることができませんでした.

わかりましたので、答えが必要ないくつかの質問のうちの 1 つがあります (事前に感謝します!!!! ここで気が狂いそうです!)。

  1. 実行時に WSDL を必要としない方法はありますか? 価値があるのは、オブジェクトをインスタンス化するときにこれが必要なのはBSだと思います。この要件を抑制する方法はありますか? 別のツールを使っていたら…?

  2. このコードが実行時に WSDL を必要としないという方法がない場合、パッケージからこの WSDL を取得するにはどうすればよいですか? JAR ファイル内から WSDL をロードするには、wsdllocation 引数に何を入力すればよいですか?

0 投票する
3 に答える
6241 参照

java - wsimport でコンストラクターを生成するにはどうすればよいですか?

wsimportパラメーター化されたコンストラクターなしでソース コードを生成します。したがって、Bean に多くのプロパティがある場合は、すべてのセッターを手動で呼び出す必要があります。

次のようにコードを記述するだけで、はるかに読みやすく便利になります。

それで、wsimportこの仕事をする方法はありますか?(私はmaven wsimportプラグインを使用しています)