0

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)

これを解決する方法を教えてください。

4

1 に答える 1

0

問題は、prefer-application-packages ディレクティブが間違っていたことです。ant クラスは in ではorg.apache.ant.*なく inorg.apache.tools.ant.*です。これを修復した後、カスタム クラスがロードされ、正常に動作します。APP-INF/lib/antaddon.jar

于 2011-05-03T10:55:25.037 に答える