【问题标题】:How to automatically include dependencies of Java Project when being added as Deployment Assembly of Dynamic Web Project作为动态 Web 项目的部署程序集添加时如何自动包含 Java 项目的依赖项
【发布时间】:2014-11-01 10:38:45
【问题描述】:

我有两个项目,一个是 java 项目(具有功能的框架集合),另一个是使用这些功能的动态 Web 项目。

我的框架使用 org.joda.time (JodaTime) 来检查日期是否为“今天”、“明天”等(日期到字符串计算)。我已经检查了框架中的“导出”框,并将该项目包含在我的 webapps 的类路径中。我还从这里做了“部署组装”提示。源代码构建没有问题。

现在,当我启动项目时,它工作正常,直到第一次使用该框架(不是 joda,而是同一个类中的任何其他方法——不管是哪一个),它给了我:

Sep 08, 2014 8:39:28 AM org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet [Faces Servlet] in context with path [/LogbookOnline] threw exception [Filter execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.joda.time.ReadableInstant
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    at com.ks.logbook.controller.functions.Functions.loadLogbookRights(Functions.java:463)

loadLogbookRights() 与 joda 无关,但它使用与 joda 时间功能在同一类中的框架方法(它关闭 DB 连接:FrameworkUtils.closeConnections(...))。

我不知道该怎么办。当我将“joda-time-methods”复制到我的 web 应用程序中时,它可以工作(并将它们从框架中删除)。就在我尝试从 frameworke 项目中使用它们(甚至是同一类中的任何方法)时,它崩溃了......

有什么想法吗?

【问题讨论】:

    标签: eclipse jakarta-ee web-applications classpath


    【解决方案1】:

    我不知道你的意思是什么

    当我将“joda-time-methods”复制到我的 web 应用程序中时,它可以工作

    当然,您需要将您的库添加到 WAR 以使 Tomcat 可以访问它们。因为,您只需将库放入 lib 目录:

    WEB-INF/lib/ 子目录可以存储 Web 模块使用的 JAR 文件。该目录下的 JAR 文件可以被 Web 模块自动访问,无需添加到类路径中。

    (Source)

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多