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

0 投票する
0 に答える
181 参照

spring - 変更できますか動的 - JAX-WS を使用

私は SOAP Web サービスを初めて使用します。デプロイされている環境に応じて、SOAP アドレスの場所を変更できるかどうかを知りたいです。私はjaxws-springを使用しています

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

java - 文字列以外の要素に対して空のタグを生成するように JAXB を取得するにはどうすればよいですか?

編集:私の意図をより明確にするために、質問を再フォーマットしました。

JAXB マーシャラーを使用して Java オブジェクトを XML にマップし、ベンダー SOAP サービスの SOAP 要求を作成しようとしています。空またはnullであっても、リクエストに提示する必要がある要素はほとんどありません。pom.xml でjaxws-maven-pluginプラグインを使用して、WSDL ファイルからソースを生成します。wsimport

私はここ[ https://stackoverflow.com/questions/11215485/jax-ws-to-remove-empty-tags-from-request-xml ]から読んで理解しましたxs:stringタイプの要素の場合、空のタグは空""の文字列を値として設定することで生成されます。ただし、それぞれオブジェクトxs:dateTime, xs:boolean, xs:integerを生成するなどのタイプの要素では実行できません。XMLGregorianCalendar, BigInteger, Boolean値を null に設定すると、マーシャリング プロセスで要素が生成されません。他の人が指摘したように、に追加することで実現できますがnillable=true@XmlElement最初のビルド後にmavenからプラグインを削除しない限り、次のビルドで上書きされる生成されたソースに変更する必要があります。

私の現在の回避策は、リクエストで提示する必要がある特定の要素のタイプをxs:stringWSDL ファイルに変更し、対応する Java オブジェクト フィールドに空の文字列を渡すことです。

nillable=true私の質問は、生成されたフィールドに追加するために jaxws:wsimport をトリガーする WSDL 側で変更を加えることは可能@XmlElementですか? 生成されたソースではなく WSDL ファイルを変更することを好む理由は、

  1. すべての変更を 1 か所にまとめて簡単に文書化できるように、すでに WSDL ファイルにいくつかの変更を加えています。
  2. 生成されたソースを変更しないようにして、Git リポジトリから除外し、ビルドごとに上書きされないようにしたいと考えています。

以下は、コードの簡略化されたバージョンです。

まず、complexType Currency 用に生成された Java クラスを用意します。

フィールドが存在しないため、フィールドをnullに設定しました。

<typ:Currency /> が生成されますが、以下のように生成する必要があります。