gpt4 book ai didi

eclipse - 当我在 Eclipse 中的 tomcat 上运行应用程序时会发生什么

转载 作者:行者123 更新时间:2023-11-28 22:29:42 25 4
gpt4 key购买 nike

我正在使用 eclipse 和 tomcat 服务器制作一个 java 网络应用程序。我想知道当我在 Tomcat 上运行我的网站时会发生什么? Eclipse 在后台执行哪些步骤以在 tomcat 上运行应用程序。

这将帮助我了解何时关闭服务器(调试时)/何时清理服务器等。

我需要知道进入服务器的内容,以便我可以更好地进行调试。

现在我所做的就是每次出现问题时重新启动服务器。我已经浪费了足够多的时间。我想我需要投入更多时间来了解幕后发生的事情。

最佳答案

环境假设

我假设:

  • target/classes 是编译类的目标文件夹
  • src/main/webapp是web应用内容文件夹
  • Project > Build Automatically 选项已选中

部署目录

Eclipse 使用展开的 WAR 部署——即部署的应用程序部署为文件夹,而不是单个文件存档。应用程序文件从 ${workspace}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ 放置和加载。

发布

发布 是一个中央进程,负责组装和部署网络应用程序。在谈到本地 Tomcat 时,这意味着将 “Web 内容、编译的类、库......” 复制到部署目录(.metadata 中的那个)。

Eclipse 能够进行部分发布——即当单个资源发生变化时(例如某些 JSP),Eclipse 将仅发布该单个文件。

默认情况下,当某些资源发生变化时,发布过程会自动执行。这可以在服务器设置中修改(双击服务器 View 中的服务器名称)。

Publishing setting

改变静态资源

如果您更改src/main/webapp/resources/myApp/css/main.css:

  • 发布后,文件被复制到部署文件夹
  • 资源立即可供服务器客户端使用

更改 JSP 文件

如果您更改 JSP 文件:

  • 发布后,文件被复制到部署文件夹
  • Tomcat 注意到 JSP 文件已更改并重新编译它
  • 更改后的 JSP 已准备好呈现内容

改变Java文件

如果您更改 java 源文件:

您可以在“模块”选项卡上的服务器设置中关闭自动重新加载功能。没有自动重新加载你仍然可以使用 hot swap功能,能够在运行的 JVM 中替换代码。这只有在方法签名未更改时才有可能。

Auto reloading feature

如果您在重新加载 Java 更改时想要更高级的解决方案(即不限于仅更改方法体),您应该检查像 JRebel 这样的项目。 (不是免费的)。

清洁

已部署的应用程序可能会损坏。值得注意的是,当你想要清理完全编译发布的资源时,你应该:

  • 清理编译类(Project > Clean... - 删除target/classes)
  • 清理部署文件(Server > Clean... - 删除部署文件夹)
  • 清理 Tomcat 工作目录(服务器 > 清理 Tomcat 工作目录... - 删除已编译的 JSP)

关于eclipse - 当我在 Eclipse 中的 tomcat 上运行应用程序时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com