4

これが私の WSDL の一部です。コードファーストのアプローチを使用しています。

<portType name="MyWebService">
     <operation name="echoString"/>
         <input message="echoString"/>
         <output message="echoStringResponse"/>
     </operation>
 </portType>

これを変更するには、どの注釈を追加または変更する必要がありますか

<input message="echoString"/>

として読む

<input message="echoStringRequest"/>

皆さんありがとう。

4

2 に答える 2

2

かなり驚いていますが、しばらく試してみたところ、jax-wsでは実際にはできないようです(実装によっては非標準的な方法を除いて)。これは、jax-ws2.0仕様がこの問題について述べていることです。JavaからWSDL1.1へのマッピング、セクション3.5、32ページを参照してください。

wsdl:message要素のname属性の値は重要ではありませんが、慣例により、通常、入力メッセージの対応する操作名および出力メッセージの「応答」と連結された操作名と同じです。障害メッセージの命名については、セクション3.7で説明しています。

したがって、私の頭に浮かぶ唯一のオプションは、たとえば@WebMethod注釈を変更または追加することによって、操作の名前を変更することです。次に例を示します。

@WebMethod(operationName = "echoStringRequest")
public String echoString(String echoStringRequest) {
    return echoStringRequest;
}

これにより、次が生成されますportType

<portType name="MyWebService">
   <operation name="echoStringRequest">
      <input message="tns:echoStringRequest"></input>
      <output message="tns:echoStringRequestResponse"></output>
   </operation>
</portType>

このバージョンに満足するかどうかの決定はあなた次第です。

于 2013-02-12T20:22:53.320 に答える