如何调试从eclipse部署到tomcat的问题?

时间:2018-06-02 00:29:41

标签: java eclipse tomcat gradle gradle-eclipse

我继承了一个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网络应用的新手,所以我需要的是验证项目导入/构建/部署的一些技巧。

这是我到目前为止所做的事情:

  • 安装Tomcat 7.0.47(安装后不要启动它)安装Eclipse 4.7.3 JavaEE风格(安装了Buildship Gradle集成2.0)
  • 将我的项目导入为Gradle项目(文件 - >导入 - > Gradle - > 现有的Gradle项目)。我指向项目根目录,选择 用于部署的Web项目,并使用默认设置。
  • 向项目添加服务器(从服务器视图中单击添加 - >选择
    Tomcat 7.0 - >指向TC root)
  • 右键单击Web目标并选择Run As - >运行服务器和 选择我添加的TC 7服务器。

此时项目构建和部署。控制台显示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

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)。