3

wsimport(JAX-WS 2.1.3)を使用してWSDLからJavaを生成しており、@HandlerChainアノテーションを生成するようにする必要があります。そこで、JAX-WSバインディングファイルを作成します。

<jaxws:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
wsdlLocation="../etc/MessageStudio.wsdl">

<jaxws:bindings node="wsdl:definitions">
    <javaee:handler-chain>
        <javaee:handler-chain-name>StrongmailHandlers</javaee:handler-chain-name>               
            <javaee:handler>
                <javaee:handler-name>OrganizationTokenHandler</javaee:handler-name>         
                <javaee:handler-class>com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler</javaee:handler-class>           
            </javaee:handler>                     
    </javaee:handler-chain>
</jaxws:bindings>

wsimportAntタスクを実行します。

 <wsimport 
        wsdl="../etc/MessageStudio.wsdl"
        sourcedestdir="../src/gen"
        destdir="../classes"
        verbose="false"
        binding="../etc/jaxws.bindings.xml">
 </wsimport>

しかし、アノテーションもハンドラーチェーンXMLファイルも取得しません。グーグルは、パッケージ、メソッド、引数を変更するための解決策と、XMLをコピーしたところからのJAX-WSRIページしか見つけられません。

ハンドラーをチェーンに入れるために、生成されたコードを変更する以外に、構成または別の方法で欠陥を見つけるのを手伝ってもらえますか?

4

3 に答える 3

5

答えは、RIの例が正しくないということです。ハンドラーチェーンラッパータグが必要です。

<jaxws:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
wsdlLocation="../etc/MessageStudio.wsdl">

<jaxws:bindings node="wsdl:definitions">
    <javaee:handler-chains>
        <javaee:handler-chain>
            <javaee:handler-chain-name>StrongmailHandlers</javaee:handler-chain-name>               
            <javaee:handler>
                <javaee:handler-name>OrganizationTokenHandler</javaee:handler-name>         
                <javaee:handler-class>com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler</javaee:handler-class>           
            </javaee:handler>                     
        </javaee:handler-chain>
    </javaee:handler-chains>
</jaxws:bindings>

于 2012-06-26T10:28:47.067 に答える
2

生成されたハンドラチェーンファイルは、コンパイルされたクラスファイルがある出力ディレクトリ(ターゲット/パッケージ)に配置されていることがわかります。これを変更したい場合は、「destDir」オプションを使用して変更できます。また、「xnocompile」をfalseに設定します。そうしないと、生成されたクラスファイルがハンドラファイルと同じディレクトリに配置されます。彼らがドキュメンテーションでそのような半分の仕事をしなかったらいいのに。

于 2013-10-26T21:16:26.353 に答える
1

この例にはまだエラーがあります。XMLスキーム( http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/javaee_web_services_metadata_handler_2_0.xsd<javaee:handler-chain-name> )に従ってタグが存在しません。

修正は次のとおりです。

<jaxws:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
wsdlLocation="../etc/MessageStudio.wsdl">

<jaxws:bindings node="wsdl:definitions">
    <javaee:handler-chains>
        <javaee:handler-chain>
            <javaee:handler>
                <javaee:handler-name>OrganizationTokenHandler</javaee:handler-name>         
                <javaee:handler-class>com.bossmedia.strongmailadapter.deliveryadapter.OrganizationTokenHandler</javaee:handler-class>           
            </javaee:handler>                     
        </javaee:handler-chain>
    </javaee:handler-chains>

于 2014-11-19T09:01:39.463 に答える