找不到taskdef类com.sun.tools.ws.ant.WsImport后面的"java web services教程"

Dim*_*tis 14 java web-services jax-ws

我在许多不同的地方看到了同样的问题,即使经过大量的谷歌搜索,我也无法解决它.我想要做的事情(更大的图片)是通过java网络服务教程,这看起来似乎不同步,

特别是在这里,当我尝试编译时,我收到以下消息:

C:\ javaeetutorial5\examples\jaxws\common\targets.xml:26:无法找到taskdef类com.sun.tools.ws.ant.WsImport

我尝试了许多不同的放置罐子或改变环境变量的组合,但没有结果.有成功的故事吗?

完整生成错误消息如下:

建筑失败

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>
Run Code Online (Sandbox Code Playgroud)

还可以查看认可目录:

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>
Run Code Online (Sandbox Code Playgroud)

小智 12

好吧,显然链接到一个解决这个问题的网站是不可接受的,所以我会在这里粘贴答案:

<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>
Run Code Online (Sandbox Code Playgroud)

问题是由于相关的jaxws jar没有在类路径中看到上面的pathelement节点.将jar添加到类路径可以解决问题.

  • 既然解决方案链接现在已经死路一条,那么将代码放在这里真是太好了! (15认同)

Bab*_*emi 10

你可以修复Netbeans xy中的问题,如下所示:

  1. 转到工具 - >选项 - > Java-> Ant.
  2. 单击Classpath部分下的"Add JAR/ZIP ..."
  3. 导航到"C:\ Program Files\NetBeans xy\enterprise\modules\ext\metro \"
  4. 选择所有文件.
  5. 单击"确定",然后再次尝试导入/重新生成.

其中xy = 7.1,7.2,8.0等


Str*_*kop 9

<wsimport>Ant任务不包含在JDK,即使是不完全一样的一个wsimport.exe.

如果你真的想要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>
Run Code Online (Sandbox Code Playgroud)


Dim*_*tis 0

我找到了一个根本不能让我满意的答案:Installed netbeans,它负责将事物连接在一起。命令行仍然不起作用(这意味着它划分了良好的环境)。我可以跟进教程,但我仍然相信一切都应该从命令行完成(我的饮食中是否有太多 Unix?)