簡體   English   中英

集成 ant - taskdef 類加載器問題

[英]Integrated ant - taskdef classloader issue

在 Weblogic 10.3 上,我的企業應用程序包含一個在內部運行 ant 腳本的 Web 服務。 我的問題是由於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)

你能幫我解決這個問題嗎?

The problem was that my prefer-application-packages directive was wrong, ant classes are not in org.apache.ant.* but in org.apache.tools.ant.* . 修復此問題后,我的自定義 class 從APP-INF/lib/antaddon.jar加載並運行良好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM