【问题标题】:Ant Build - taskdef cannot be foundAnt Build - 找不到taskdef
【发布时间】:2020-02-27 21:19:48
【问题描述】:

我正在尝试执行 Ant 构建以从 Weblogic Web 应用程序的 WSDL 文件构建 Web 服务。但是,我在尝试构建时收到以下错误:

BUILD FAILED 
/<path>/build.xml:19: taskdef class weblogic.wsee.tools.anttasks.WsdlcTask cannot be found 
using the classloader AntClassLoader[]

build/xml 中的任务定义如下所示:

<taskdef name="wsdlc"
         classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>
<taskdef name="jwsc"
  classname="weblogic.wsee.tools.anttasks.JwscTask" />
<taskdef name="clientgen"
  classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
<taskdef name="wldeploy"
  classname="weblogic.ant.taskdefs.management.WLDeploy"/>

我也尝试在这些taskdef中显式定义类路径,如下所示,但没有成功:

<taskdef name="wsdlc"
           classname="weblogic.wsee.tools.anttasks.WsdlcTask"
           classpath="/WebContent/WEB-INF/lib/weblogic.jar"/>

这是 build.xml 文件的类路径:

我不知道为什么会出现“找不到类”错误...我正在按照Oracle docs - Building a Web Application from an WSDL file 的说明了解 build.xml 文件的格式。

注意事项: 我从运行 Weblogic 服务器的同一位置执行此 build.xml 文件,因为 Weblogic 服务器没有安装 Ant。我正在尝试在本地构建它,以便创建 Web 服务,最终通过 Weblogic 控制台将其部署在 WAR 文件 + Web 服务的 EAR 包中。

【问题讨论】:

  • jar 是否实际位于/WebContent/WEB-INF/lib/?尝试在终端中输入ls /WebContent/WEB-INF/lib/。您需要找到实际路径。
  • 是的,罐子确实在里面。

标签: java ant weblogic classpath


【解决方案1】:

你需要设置WLS域环境(setDomainEnv.sh),否则ant找不到专有的WLS类。

(Windows 的 setDomainEnv.cmd 和 Linux 的 setDomainEnv.sh)。

要实现这一点,您需要:

source ./setDomainEnv.sh

【讨论】:

  • 我最终在 WebLogic 服务器上安装了 Ant。 Oracle 文档中提到的运行 setDomainEnv.sh 的说明,它位于 ORACLE_HOME/user_projects/domains/domainName - 我是否也应该在这里有我的 build.xml 和代码目录?还是没关系?
  • 位置无关紧要,因为该脚本实际上将 jar 文件添加到类路径
  • 嗯,我明白了。不过,我似乎仍然遇到同样的错误 - 找不到 taskdef 类 weblogic.wsee.tools.anttasks.WsdlcTask。也许这是 Weblogic 文件所在位置的问题。
  • 记得使用“source or .”在 Linux 中,就像我在答案中给出的示例一样
  • 嗨,也许是迟到的评论.. 但我有同样的错误你在哪里添加“source ./setDomainEnv.sh”?在 build.xml 文件或您开始的脚本中?
【解决方案2】:

就我而言,我只是将“weblogic.jar”添加到类路径配置中。 本地化在:[your_directory]\wls\wlserver\sip\server\lib

ECLIPSE: Run as -> Ant Build... -> Classpath(tab) -> Add external Jar's

【讨论】:

  • 或者 OP 可以使用相对路径并设置 base.dir - 对问题的第一条评论实际上有答案(他真的是指以 / 开头的路径)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 2010-10-03
  • 1970-01-01
  • 2012-05-26
  • 2015-03-12
  • 1970-01-01
相关资源
最近更新 更多