問題タブ [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 - 複雑な入力タイプを使用しない wsimport
wsimport を使用して一部のサービスのプロキシを生成すると、結果として得られる各ポートのメソッド シグネチャは、WSDL で指定された複合型を使用していないようです。しかし、他のいくつかのサービスではそうであることに気付きました。
これは複数のサービスで発生していますが、最新の例は Amazon の AWSEConsumerService ( WSDL へのリンク) です。wsimport を使用してサービス プロキシ コードを生成すると、ポートごとに次のようなメソッド シグネチャが取得されます。
このメソッドは、WSDL で指定された単一の複雑なパラメーター (この場合は ItemLookup オブジェクト) を受け取ると思います。私は根本的に何かを誤解していますか、それともコード生成で何か異常が起こっていますか?
java - 返されたオブジェクトをリストにアンラップするために JAX-WS に適用するカスタマイズは何ですか?
引数の 1 つとして文字列のリストが渡され、オブジェクトのリストを返すChemSpider WebServiceCSID2ExtRefs
の操作などをカスタマイズする方法があるかどうかを見つけようとしています。
生成されたwsimport
インターフェイス メソッドは次のとおりです (with jaxws:enableWrapperStyle = true
):
しかし、私はラップを解除してリストに変えたいと思いArrayOfExtRef
ます。たとえば、次のように取得します。ArrayOfString
この変更を手動で行うと、JAX-WS は正常に動作します。そのための適切なカスタマイズを書く方法はあるのだろうか?
java - wsimport-別々のプロジェクト/フォルダーでサービスエンドポイントクラスとJAXBクラスを生成する方法
複数のWebサービス(複数のWSDL)を使用するプロジェクトにはトップダウンアプローチを使用しています。各Webサービスは、個別のプロジェクトとして設定し、個別の戦争として展開する必要があります。
問題は、WSDLがいくつかの一般的な.xsdファイルを共有していることです。現在、WSDLごとにwsimportを実行すると、共通のJAXBクラスが各Webサービスプロジェクトで複製されます。
理想的には、共通の共有プロジェクトでJAXBクラスを個別に生成してから、各WebサービスプロジェクトでJAXBクラスプロジェクトを再利用する必要がありますが、wsimportには、JAXBクラスの生成をスキップするオプションや別の場所を指定するオプションはありません。 JAXBクラスの場合。
異なるJAX-WSWebサービスエンドポイント間でJAXBクラスを共有する方法について何か考えはありますか?
java - WSDL から生成されたクライアントは、オプションのヘッダー要素を除外した要求を生成できますか?
jax-ws 生成コードを使用してクライアントを作成しています。使用される WSDL は、バインディング要素内で、次のように多数のヘッダー要素を指定します。
私の質問は、議論のために、header5
. 私が取り組んでいる仕様によると、これはオプションの値です。header5
そのため、JAX-WS を使用してクライアントを生成し、要求に追加される値の操作パラメーターとして null (指定されていない値をシミュレートするため) または有効なヘッダー値を渡す必要があります。<header5>
これにより、子要素を持たない要素が作成されます。次に発生する問題は、消費するサービスがそのヘッダー要素に対して何らかの検証を行っているように見え、通常はいくつかの異なる子要素が含まれているため、不正な形式であると判断することです。
そのため、JAX-WS を使用して、SOAP 要求からヘッダー要素をすべて除外することで、このオプションのヘッダー要件を本質的に満たす方法はありますか? これが WSDL で定義された契約に違反し、サービスがエラーを返す原因になるかどうかについて、私の同僚の間でいくつかの論争があるようです。.Net クライアントでは、ヘッダーを null として指定するだけで、ヘッダーをリクエストから除外できるという主張があります。
java - JavaでPoint []をArrayOfPointにどのように変換しますか?
wsimport を使用して .net サービスから wsdl ファイルをインポートし、ArrayOfXXX を取得しています。Java コレクションからこれらのオブジェクトに変換するための推奨される方法は何ですか?
Position オブジェクトを取得します (マップ上のポイントを表します)。私が持っている wsdl は次のとおりです。
wsimport
これをJavaで試してみると、ArrayOfPoint
オブジェクトが得られます。
どのように を に変換しますPoint[]
かArrayOfPoint
?
java - wsimport: XSD が WSDL に埋め込まれている場合にバインディングを追加しますか?
次のWSDLから Java コードを生成しようとしています: http://www.ebi.ac.uk/Tools/services/soap/emboss_needle?wsdl
ただし、JAXBElement<String>
代わりにいくつかを生成しString
ます。そこで、ここで説明されているように、 xjb バインディングを使用しようとしました。
ただし、wsimport は例外を発生させます。
XSD スキーマは WSDL ドキュメントに埋め込まれています。jxb:schemaLocation にはどの URI を指定すればよいですか? どうすればその問題を解決できますか?
ありがとう、
P.
java - java「クラスファイルに間違ったクラスが含まれています」エラー
Webサービスをテストするためのコンソールアプリケーションを作成しようとしています。http:// localhost:8080 / WS / myWSでWebサービスを正常にデプロイし、 wsimport を使用してプロキシクラスを作成しました。
現在、私のWebサービスクラスはbin / mywebservice /にあり、classpath=./を使用してクライアントクラスをコンパイルしようとしています。
これが私のクラスのソースコードです:
そして、私はエラーがあります:
助けてください、myClass_Serviceの何が問題になっていますか?myClass_Service.classは。\bin\mywebservice\に存在します
java - Java クライアントと PHP サーバー間で base64Binary SOAP パラメーターを送信する
HTMLページのコンテンツを送信するPHP SOAPサーバー( wsdlでnuSOAPを使用)があります。もちろん、HTML はさまざまなエンコーディングでコーディングできますが、このパラメータはXML では base64Binary 型であり、問題なく「ネイティブ エンコーディング」で HTML を受け取ります。
証明するために、私は3 つの SOAP クライアントを PHP、C#、および Java 6 でコーディングしましたが、最初の 2 つは問題ありません。Java クライアントはWSIMPORT 2.1を使用して作成され、コードの例は次のようになります。
問題は、HTML を base64 エンコーディングで送信する前に、Java クライアントのみが HTML コンテンツを UTF8 にエンコードし、PHP がこのファイルを受信すると、サーバーはそれを「BIG5 ファイル」ではなく「UTF8 アーカイブ」のように管理することです。
問題は、最初の UTF8 エンコーディングを回避する方法です。または、少なくとも base64 の後に utf-8 エンコーディングを行います。それ以前ではありません。
前もって感謝します。
web-services - Mavenを使用してWebアプリケーションのnetbeansでWebサービスクライアントを生成する
Web サービス クライアントを持つ Web アプリケーションがあります。netbeans でクライアントを右クリックすると、以下のように Web サービス属性を編集するオプションが表示されます。
同じアプリケーションに Maven を追加すると、Web サービス属性の編集中に -wsimport オプション タブが表示されません。次の画像を参照してください。
後のアプリケーションで依存関係の管理に使用される maven だけで、他のすべてはアプリケーションで同じです。
助けてください。
java - wsimport ant タスクの使用中にすべてのパッケージ名にプレフィックスを追加する
wsimport ant タスクを使用してクライアント コードを生成しています。周知のように、自動生成されたクラスのパッケージ名は、WSDL にある名前空間に従って決定されます。
これらのパッケージ名を変更し、パッケージ名のプレフィックスを追加したいと考えています。たとえば、wsdl の名前空間がcom.example
の場合、パッケージ「prefix.com.example」が生成されます。
この問題を処理するために、2 つの異なる解決策を試しました。しかし、彼らは私を助けることができませんでした。
-p prefix.com.example
生成されたすべてのクラスがこのコマンドで 1 つのパッケージに含まれているため、wsimport ant タスクで使用されるコマンドは機能しません。- jaxws または jaxb バインディング ファイルも同様に機能します。このタグを追加する
<jaxb:package name="prefix.com.example" />
と、生成されたクラスは という名前の 1 つのパッケージに含まれますprefix.com.example
。
クライアント コードの生成中に、パッケージ名のすべての名前空間にプレフィックスを追加したいだけです。
この件に関して他の解決策はありますか?
前もって感謝します。