找不到taskdef类com.sun.tools.ws.ant.WsImport后面的“java web services tutorial”

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

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

C:\ javaeetutorial5 \ examples \ jaxws \ common \ targets.xml:26:找不到taskdef类com.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

   

还可以查看认可目录:

 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  . 25/02/2011 09:34  .. 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> 

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

       

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

ant任务不包含在JDK中,即使有一个wsimport.exe完全相同。

如果你真的想要ant任务,你可以下载jaxws-ri并使用lib文件夹中的23(!)jar。

或者,您可以通过调用wsimport.exe来使用此解决方法:

      

你可以修复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等

我完全支持非IDE开发,特别是在尝试学习某些东西时;)。 尝试从这个简单的构建文件开始(使用JAX-WS RI安装的实际位置):

             

如果您只是运行ant ,您应该看到如下输出:

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

因为看起来你正在使用Java 6,所以要注意“在JDK6上运行” 。

这对我有用:

我从官方网站下载JAVA-WS库,我把它放在extra-lib目录下。 此目录与build.xml位于同一级别。 在build.xml上,我从jaxws-build.xml复制名为“wsimport-init”的Ant任务,并按照以下模式修改它:

 ...           ... 

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

我将classname="com.sun.tools.ws.ant.WsImport"更改为classname="com.sun.tools.ws.WsImport" ,它为我解决了这个问题。

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

更好的是,您可以使用命令行工具wsimport生成jar或文件

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

将文件生成到build / classes文件夹中,然后可以使用ant javac从那里引用它

要解决这个错误,我们需要使用Tools-> Options,单击Miscellaneous,然后在Ant选项卡中使用Add Jar / ZIP找到并在目录中添加库webservices-tools.jar和webservices-rt.jar

如果您正在使用Eclipse IDE并面临此问题,那么这对我有用。 转到:窗口>首选项。 在左侧找到Ant选项。

展开它,你会发现ANT运行时。 选择该选项并检查Classpath选项卡中包含的jar。

选择Add External Jar’s选项。 现在转到系统中的ant home文件夹。 转到lib文件夹并添加所有jar /缺少的jar文件。

这将解决ant-build缺少的依赖关系。

希望有所帮助!