web-dev-qa-db-ja.com

taskdefクラスcom.Sun.tools.ws.ant.WsImportが「Java Webサービスチュートリアル」に従っている場合に見つかりません。

同じ問題がさまざまな場所で見られましたが、グーグルでかなりの部分を試しても解決できませんでした。私がやろうとしていること(より大きな画像)は、通過することです Java Webサービスのチュートリアル 、これは同期していない点で思われます、

特に here をコンパイルしようとすると、次のメッセージが表示されます。

C:\ javaeetutorial5\examples\jaxws\common\targets.xml:26:taskdef classcom.Sun.tools.ws.ant.WsImportは見つかった

Jarの配置または環境変数の変更のさまざまな組み合わせを試しましたが、結果はありませんでした。成功したストーリーはありますか?

完全なビルドエラーメッセージは次のとおりです。

ビルドに失敗しました

C:\ javaeetutorial5\examples\jaxws\helloservice\build.xml:4:この行の実行中に次のエラーが発生しました:

C:\ javaeetutorial5\examples\jaxws\common\targets.xml:26:taskdefクラスcom.Sun.tools.ws.ant.WsImportに必要なクラスが見つかりません:org/Apache/tools/ant/DynamicConfigurator

クラスローダーAntClassLoaderの使用[C:\ Program Files(x86)\ Java\jdk1.6.0_23\lib\tools.jar]

合計時間:0秒

そして、対応するtaskdef

<taskdef name="wsimport" classname="com.Sun.tools.ws.ant.WsImport">
    <classpath refid="jaxws.classpath"/>
</taskdef>

また、裏書きディレクトリをのぞいてみます。

C:\javaeetutorial5\kschneid>cd %Java_HOME%

C:\Program Files (x86)\Java\jdk1.6.0_23>dir lib\endorsed
 Volume in drive C is OSDisk
 Volume Serial Number is AAAA-BBBB

 Directory of C:\Program Files (x86)\Java\jdk1.6.0_23\lib\endorsed

25/02/2011  09:34    <DIR>          .
25/02/2011  09:34    <DIR>          ..
25/02/2011  09:34           105,134 jaxb-api.jar
25/02/2011  09:33            54,476 jaxws-api.jar
               2 File(s)        159,610 bytes
               2 Dir(s)  110,907,056,128 bytes free

C:\Program Files (x86)\Java\jdk1.6.0_23>
13

まあ、明らかにこの問題への solution を含むWebサイトへのリンクは受け入れられないので、ここに答えを貼り付けます。

<property name="BUILD_LIBS" location="C:/Projects/Build/Libs/" />

<taskdef name="wsimport" classname="com.Sun.tools.ws.ant.WsImport">
    <classpath>
        <pathelement location="${BUILD_LIBS}/jaxws-ri/lib/jaxws-tools.jar"/>
    </classpath>
</taskdef>

問題は、関連する jaxws jarがクラスパスにないためです。上記のpathelementノードを参照してください。 jarをクラスパスに追加すると、問題が解決します。

12
user63904

Netbeans x.yの問題は、次のように修正できます。

  1. 「ツール」->「オプション」->「Java」->「Ant」に移動します。
  2. クラスパスセクションの下にある[JAR/Zipの追加...]をクリックします。
  3. 「C:\ Program Files\NetBeans x.y\enterprise\modules\ext\metro \」に移動します
  4. すべてのファイルを選択します。
  5. [OK]をクリックして、インポート/再生成を再試行してください。

ここで、x.y = 7.1、7.2、8.0など

11

<wsimport> antタスクは、まったく同じことを行うwsimport.exeがあるにもかかわらず、JDKに含まれていません。

Antタスクが本当に必要な場合は、jaxws-riをダウンロードして、libフォルダーの23(!)jarを使用できます。

または、この回避策はwsimport.exeを呼び出して使用できます。

<target name="generate-client" >
    <exec executable="${Java.home}/../bin/wsimport">
        <arg line="-keep -d build/classes -p ebay.apis -s src -wsdllocation http://localhost:7070/Ebay?wsdl eBaySvc.wsdl"/>
    </exec>
</target>
9
Stroboskop

特に何かを学ぼうとするときに、IDE以外の開発を完全にサポートします;)。この単純なビルドファイルから始めてみてください(JAX-WS RIインストールの実際の場所を使用してください)。

<project name="jaxws-tutorial" default="wsimport">

    <property name="jaxws.home" location="D:/jaxws-ri-2_2_1"/>

    <path id="wsimport.classpath">
        <fileset dir="${jaxws.home}/lib" includes="jaxws-tools.jar"/>
    </path>

    <taskdef name="wsimport" classname="com.Sun.tools.ws.ant.WsImport" classpathref="wsimport.classpath"/>

    <target name="wsimport">
        <wsimport>
            <arg value="-version"/>
        </wsimport>
    </target>

</project>

antを実行すると、次のような出力が表示されます。

wsimport:
 [wsimport] Consider using <depends>/<produces> so that wsimport won't do unnecessary compilation
 [wsimport] JAX-WS RI 2.2.1-b01-

Java 6を使用しているようですので、 "JDK6で実行中" に注意してください。

4
kschneid

classname="com.Sun.tools.ws.ant.WsImport"からclassname="com.Sun.tools.ws.WsImport"、この問題を修正しました。

2
Rahul Khimasia

Netbeans 11をテストしてからNetbeans 8.2に戻った後も、同じ問題が発生しました。解決策はファイルでした

ProjectName\nbproject\private\private.properties

そのエントリがあった

user.properties.file=XXXX\\AppData\\Roaming\\NetBeans\\11.0\\build.properties

正しいインストールに戻す

user.properties.file=XXXX\\AppData\\Roaming\\NetBeans\\8.2\\build.properties

問題を解決しました。一部のプロジェクトでは、Netbeansがダイアログボックス「プロジェクトProjectNameはbuild.properties別のNetbeansインストールから」、[このインストールを使用]の順にクリックします。

1
Tilman Hausherr

これは私のために働きました:

公式サイト からJava-WSライブラリをダウンロードします。それをextra-libディレクトリに置きます。このディレクトリは、build.xmlと同じレベルにあります。 build.xmlで、jaxws-build.xmlから「wsimport-init」という名前のAntタスクをコピーし、次のモードのように変更します。

...
    <target name="wsimport-init" depends="init">
        <mkdir dir="${build.generated.sources.dir}/jax-ws"/>
        <taskdef name="wsimport" classname="com.Sun.tools.ws.Ant.WsImport">
            <classpath>
                <fileset dir="./extra-lib">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
        </taskdef>
    </target>
...

参考: http://www.staniscia.net/989-resolve-the-portable-problem-of-netbean-jax-ws-libraries-for-web-service-clients/

1
Akira Yamamoto

このエラーを回避するには、[ツール]-> [オプション]を使用して[その他]をクリックし、[Ant]タブで[Jar/Zipを追加]を使用してライブラリを検索して追加します webservices-tools.jar および webservices-rt.jar ディレクトリ

1
Dvir Arad

私はまったく私を満足させない答えを見つけました:インストールされたnetbeansは物事を一緒に結合することを処理します。それでもコマンドラインは機能しません(つまり、環境が区画化されており、良好です)。チュートリアルをフォローアップすることはできますが、コマンドラインからすべてを実行する必要があると私はまだ信じています(私の食事療法にUnixが多すぎませんでしたか?)

さらに良いことに、コマンドラインツールwsimportを使用してjarまたはファイルを生成できます。

http://docs.Oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

build/classesフォルダーにファイルを生成し、そこからant javacで参照できます

0
JohnTheBeloved

Eclipse IDE=を使用していて、この問題に直面している場合、これは私のために働いたものです。ウィンドウ>設定に移動します。左側にあるAntオプションを見つけます。

それを展開すると、ANTランタイムが見つかります。そのオプションを選択し、[クラスパス]タブに含まれているjarを確認します。

[外部ジャーの追加]オプションを選択します。次に、システムのantホームフォルダーに移動します。 libフォルダーに移動し、すべてのjarファイル/不足しているjarファイルを追加します。

これにより、ant-buildの欠落している依存関係が解決されます。

お役に立てば幸いです。

0
RishikeshD