2

現在、SOAP と WSDL インターフェースを使用するプラットフォームに取り組んでいます。トップダウンのアプローチを採用し、JAX-WS を使用して WSDL から Java クラスを生成します。

私がやりたいことは、作成された WebService インターフェイスのメソッドに注釈を追加することです。これが不可能な場合は、生成された WebService インターフェイスに別のインターフェイスを拡張させて、アノテーションを付けることもできます。

例として、次の wsdl を取り上げます。

<portType name="SoapDemo">
    <operation name="search">
        <input message="tns:search" wsam:Action="http://example.org/soapDemo/searchRequestType">
        </input>
        <output message="tns:searchResponseType" wsam:Action="http://example.org/soapDemo/searchResponseType">
        </output>
        <fault name="DemoException" message="tns:DemoException" wsam:Action="http://example.org/soapDemo/DemoException">
        </fault>
    </operation>
</portType>

次のようなカスタムバインディングを使用したいと思います。

@WebService(name = "SoapDemo", targetNamespace = "http://example.org/soapDemo")
public interface ErnpSoap {

    @ImportantAnnotation
    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "search", targetNamespace = "http://example.org/soapDemo", className = "example.org.Search")
    @ResponseWrapper(localName = "searchResponseType", targetNamespace = "http://example.org/soapDemo", className = "example.org.SearchResponseType")
    public SearchResponse search(
        /* parameters go here */
        throws DemoException
    ;

インターフェイスに追加したい @ImportantAnnotation に注意してください。

これはまったく可能ですか?

4

0 に答える 0