找不到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中的问题,如下所示:
- 转到工具 – >选项 – > Java-> Ant。
- 单击Classpath部分下的“Add JAR / ZIP …”
- 导航到“C:\ Program Files \ NetBeans xy \ enterprise \ modules \ ext \ metro \”
- 选择所有文件。
- 单击“确定”,然后再次尝试导入/重新生成。
其中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缺少的依赖关系。
希望有所帮助!