2011-05-02 69 views
0

在Weblogic 10.3上,我的企業應用程序包含一個運行ant腳本的web服務。我的問題是,由於java.lang.ClassNotFoundExceptions,我無法運行自定義任務。集成的ant - taskdef類加載器問題

(這一切運作良好在Tomcat 5.5)

我的任務實現可以在4個不同的地方找到:/富

  • something.ear/APP-INF/lib中/ antaddon.jar /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
  • server/lib/antad don.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) 

你能幫助我如何解決這個問題?

回答

0

問題是我的prefer-application-packages指令是錯誤的,螞蟻類不在org.apache.ant.*中,而是在org.apache.tools.ant.*中。修復後,我的自定義類被加載並從APP-INF/lib/antaddon.jar