【问题标题】:Apache Tomcat using old resources - changes in Eclipse project not reflected in Web AppApache Tomcat 使用旧资源 - Eclipse 项目中的更改未反映在 Web App 中
【发布时间】:2013-07-17 22:40:57
【问题描述】:

我正在使用带有 Apache Tomcat 版本 6 的 Eclipse Java EE IDE 来开发 Web 应用程序。

应用程序的结构非常简单,只有两个类,一个是servlet类,另一个是由servlet构建的对象,完成大部分工作。

我遇到的问题是:因为今天早上我对两个类文件所做的更改并没有出现在 Web 应用程序的行为中。该应用程序的行为本质上就好像它正在运行我昨天的代码。为了确保确实如此,我暂时以激进的方式改变了程序的行为,而且这些改变仍然没有影响到 Web 应用程序。

一些相关信息:我正在运行 Ubuntu 12,我的 Eclipse 项目设置为自动构建,并且 tomcat 服务器默认配置为自动加载模块并在资源更改时自动发布。我也打扫过 出服务器的工作目录。

我该如何克服这个问题?我需要我的 Web 应用程序来实现我对 servlet 的源代码和 servlet 使用的类所做的更改。

【问题讨论】:

  • 尝试重启服务器。您也可以尝试在服务器中添加和删除项目。
  • 我尝试了这两个,我重新启动了服务器,删除了项目并将它们重新添加,故意重新发布服务器,所有这些都在刷新我的 eclipse 项目之后。
  • 我什至删除了旧项目,构建了一个新的动态 Web 项目,并将我的两个源代码文件和依赖项全部导入新项目文件夹,但 Tomcat 仍然没有实现我做了0_0
  • 您的 tomcat server.xml 是否指向正确的工作区? server.xml 可以在你的 tomcat 安装目录中找到。

标签: java web-services tomcat servlets eclipse-classpath


【解决方案1】:

如果您在 Servers 选项卡中以标准方式添加 Tomcat 服务器,则 部署路径 位于工作区的 .metadata 目录中。

下一个树目录是我的工作区。我添加了 Tomcat 7。

MY_WORKSPACE
+---.metadata
|   \---.plugins
|       +---org.eclipse.wst.server.core
|       |   |   monitors.xml
|       |   |   publish.xml
|       |   |   servers.xml
|       |   |   tmp-data.xml
|       |   |   
|       |   +---publish
|       |   |       publish0.dat
|       |   |       publish1.dat
|       |   |       
|       |   \---tmp0
|       |       +---conf
|       |       |   |   catalina.policy
|       |       |   |   catalina.properties
|       |       |   |   context.xml
|       |       |   |   server.xml
|       |       |   |   tomcat-users.xml
|       |       |   |   web.xml
|       |       |   |   
|       |       |   \---Catalina
|       |       |       \---localhost
|       |       +---logs
|       |       |       catalina.2013-07-06.log
|       |       |       catalina.2013-07-11.log
|       |       |       host-manager.2013-07-06.log
|       |       |       host-manager.2013-07-11.log
|       |       |       localhost.2013-07-06.log
|       |       |       localhost.2013-07-11.log
|       |       |       localhost_access_log.2013-07-06.txt
|       |       |       localhost_access_log.2013-07-11.txt
|       |       |       manager.2013-07-06.log
|       |       |       manager.2013-07-11.log
|       |       |       
|       |       +---temp
|       |       +---webapps
|       |       +---work
|       |       |   \---Catalina
|       |       |       \---localhost
|       |       \---wtpwebapps
|       |           +---ROOT
|       |           |   \---WEB-INF
|       |           |           web.xml
|       |           |           
|       |           \---MyWebProject
|       |               |   index.html
|       |               |       
|       |               \---WEB-INF
|       |                   +---classes
|       |                   |   |   
|       |                   |   \---several-packages-and-clases
|       |                   \---lib
|       |                           log4j-1.2.17.jar
|       |                           slf4j-api-1.7.5.jar
|       |                           slf4j-log4j12-1.7.5.jar
|       |                           
|       \---org.other.plugins
|               
\---Servers
    |   .project
    |   
    +---.settings
    |       org.eclipse.wst.server.core.prefs
    |       
    \---Tomcat v7.0 Server at localhost-config
            catalina.policy
            catalina.properties
            context.xml
            server.xml
            tomcat-users.xml
            web.xml

我的网络应用程序MyWebProject真实路径在目录wtpwebapps 中。您可以删除MyWebProject,然后重试。

如果您的工作区中有多个 Tomcat,您会看到诸如 tmp0tmp1tmp2 之类的目录...

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,在我的情况下,即使 tmp0 文件夹已正确更新为新的类文件和资源文件,我仍然遇到同样的问题。 就我而言,我通过禁用 Eclipse 的 jrebel 插件解决了这个问题。我在 eclipse 中安装了 jrebel,它仍在监视和从其他工作区(甚至不是这个工作区)部署项目,我也将向 jrebel 团队提出一个错误。 只需为该项目禁用 jrebel 并使其恢复正常工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2012-03-20
      • 2018-04-14
      • 2012-02-17
      • 2016-12-03
      • 2015-10-18
      • 2012-10-06
      相关资源
      最近更新 更多