在Weblogic 10.3上,我的企业应用程序包括一个在内部运行ant脚本的webservice。我的问题是,我不能得到我的自定义任务运行由于java.lang.ClassNotFoundExceptions
。
(所有这些在Tomcat 5.5上运行良好)
我的任务实现可以在4个不同的位置找到:
- something.ear/APP-INF/lib/antaddon.jar !/foo/bar/MyTask.class
- something.ear/Webservice.war/web - inf/lib/antaddon.jar !/foo/bar/MyTask.class
- something.ear Webservice.war/web - inf/classes/foo/bar/MyTask.class
- 服务器/lib/antaddon.jar !/foo/bar/MyTask.class
我看到Weblogic 10.3
集成Ant 1.6.5
模块可能会导致问题因为我绑定了Ant 1.8.0
,所以我添加了
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>org.apache.ant.*</package-name>
<package-name>org.apache.zip.*</package-name>
</prefer-application-packages>
到我的weblogic-application.xml来克服这个问题。(这解决了一些NoSuchMethodErrors
..)然而,我的任务仍然没有找到:
java.lang.ClassNotFoundException: foo.bar.MyTask.class
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:457)
at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:183)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:142)
at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:91)
你能帮我解决这个问题吗? 问题是我的prefer-application-packages指令是错误的,ant类不在org.apache.ant.*
中,而是在org.apache.tools.ant.*
中。修复后,我的自定义类被加载,并从APP-INF/lib/antaddon.jar