1

java2wsdlを生成するときにextraClassesパラメーターを渡したいのですが。これが私のAntタスクです:

<target name="rews.all" depends="xews.aar">
    <echo message="${axis2.classpath}" />
    <delete file="${build.dir}/wsdl/XEWS.wsdl" />
    <taskdef name="java2wsdl"
             classname="org.apache.ws.java2wsdl.Java2WSDLTask"
             classpathref="axis2.classpath">                 
    </taskdef>
    <java2wsdl className="com.dd.xews.XEWS"
               outputLocation="${build.dir}/wsdl/"
               targetNamespace="http://xews.dd.com/"
               schemaTargetNamespace="http://xews.dd.com">
        <classpath>
            <pathelement path="${axis2.classpath}"/>
            <pathelement location="${build.dir}/classes"/>
            <pathelement location="${vendor.dir}/AWS/lib/aws-java-sdk-1.2.1.jar"/>
        </classpath>            
    </java2wsdl>
    <copy todir="${build.dir}/" file="${build.dir}/wsdl/XEWS.wsdl"/>
</target>

すべてを試しましたが、運がありませんでした。

誰かが構文を知っていますか?ここにextraClassesを追加するにはどうすればよいですか?

Test1(失敗)

これはエラーで失敗しましたjava2wsdl doesn't support the "extraClasses" attribute

<java2wsdl className             ="com.dd.xews.XEWS"
           outputLocation        ="${build.dir}/wsdl/"
           targetNamespace       ="http://xews.dd.com/"
           schemaTargetNamespace ="http://xews.dd.com"
           extraClasses          ="com.dd.xews.XEWS.Emailer.java">  
</java2wsdl>

どの属性java2wsdl Ant taskがサポートされているかを確認するにはどうすればよいですか?

私のAxis2バージョンは1.5.4です。

4

2 に答える 2

1

Ant タスクのソース コードへのリンクは次のとおりです: Java2WSDLTask

#setExtraClasses文字列パラメーターを受け入れ、カンマ区切りを使用して分割しようとします。だから、次のようなものを渡してみてください

<extraClasses>com.test.Class1,com.test.Class2</extraClasses>

編集

これは Axis2 の古いバージョン (より正確には -- 1.6.0 より前のバージョン) では機能しません。これは、'extraClasses' 属性が配列型として指定されたためであり、これは明らかに Ant タスク属性としてサポートされていません。この JIRA の問題ですべての詳細を見つけることができます: AXIS2-4634: Ant タスク Java2WSDLTask では、extraClasses の使用が許可されていません

これを機能させる最も簡単な方法は、Axis2 JAR を新しい 1.6.x バージョンにアップグレードすることです。プロジェクト固有の理由で Axis2 バージョンに固執している場合 (あるべきではないと思います)、新しいバージョンから Java2WSDLTask のソース コードを取得し (上記の GrepCode へのリンクを参照)、コピーを作成することができます。プロジェクトでこのタスクを作成し (別のクラス名またはパッケージを使用する必要があります)、現在使用しているのと同じように Ant タスクとして使用します。ただし、'extraClasses' 属性を使用することは可能です。

于 2012-12-03T11:08:43.557 に答える
0

Axis2 1.4 以降では、「-xc」属性がサポートされています。これが私がそれをした方法です:

<java classname="org.apache.ws.java2wsdl.Java2WSDL" fork="true">
   ....
   <arg value="-xc"/>
   <arg value="com.example.mypackage.MyClass"/>
   <arg value="-xc"/>
   <arg value="com.example.anotherpackage.MyOtherClass"/>
   ....
</java>
于 2013-11-15T20:57:07.563 に答える