我继承了一个Spring网络应用。它是我导入Eclipse的gradle web应用程序项目。我们正在使用Eclipse 4.7.3,Tomcat 7.0.47和JDK 1.8.0.151。
问题是当我从Eclipse将项目部署到Tomcat时,一些依赖项jar不会被复制到项目lib目录中。当TC尝试启动Web应用程序时,会出现ClassNotFoundException错误。
我是Java网络应用的新手,所以我需要的是验证项目导入/构建/部署的一些技巧。
这是我到目前为止所做的事情:
此时项目构建和部署。控制台显示TC日志。 TC启动但在尝试启动Web应用程序时显示错误(例如):
引起:java.lang.ClassNotFoundException:org.apache.log4j.Level
我可以复制罐子但是我的印象是Gradle应该在部署期间抓住依赖罐。我可以验证一些是复制的,但其他人都丢失了。我该如何调试此问题?
这是我的build.gradle文件的一部分
buildscript {
repositories {
maven {
url projectDownloadUrl
}
}
dependencies {
classpath lib_license_gradle_plugin
}
}
将Web应用程序部署到... eclipse-workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0。这里的lib目录包含一些已部署的依赖项jar。 gradle.properties文件包含依赖项列表,例如
lib_apache_tomee = org.apache.openejb:apache的-tomee:1.7.1
答案 0 :(得分:0)
这显然不是问Gradle / Tomcat问题的地方。发布后不久,我想出了这个问题,不想让从那以后来这里寻求帮助的40个人感到失望,以为我应该最终回答自己的问题。
首先,我对如何在Eclipse中调试gradle / maven应用程序部署进行了正确的了解。部署之后,您可以检查部署目录中的jar。 Eclipse在本地部署到类似于c:\ users \\ eclipse-workspace.metadata.plugins \ org.eclipse.wst.server.core的地方。
第二,我遇到的直接问题是由于使用Tomcat而不是Tomcat EE。答案是正确的:
lib_apache_tomee = org.apache.openejb:apache-tomee:1.7.1
Tomee是Tomcat + Java Enterprise Edition,其中包括一些额外的日志记录和其他jar(我所缺少的jar)。