如何在添加为动态Web项目的部署程序集时自动包含Java项目的依赖项



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

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

现在,当我开始这个项目时,它工作得很好,直到第一次使用这个框架(不是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时间方法"复制到我的网络应用程序中时,它就起作用了(并将它们从框架中删除)。就在我试图从frameworker项目中使用它们(甚至是同一类中的任何方法)时,它崩溃了。。。

有什么想法吗?

我不知道是什么意思

当我将"joda时间方法"复制到我的网络应用程序中时,它可以工作

但当然,您需要将库添加到WAR中,以便Tomcat可以访问它们。对于,只需将库放入lib目录:

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

(来源)

最新更新