我使用Eclipse Indigo(EE)在Java框架Vaadin中构建应用程序, 使用Tomcat 7.0服务器。代码更改后我不会在浏览器中看到结果, 所以我需要点击选项“清理Tomcat工作目录.. ”并等到 Tomcat停止并启动服务器。
否则,当我刷新应用页面时,我看不到任何变化。 即使我重新启动服务器(当我保存更改时eclipse会自动重启它),而不清理tomcat目录。
选项“资源更改时自动发布”已启用。
有更快的方法吗?或者我可以自动化这个过程吗?
答案 0 :(得分:6)
除了Kowser的答案之外,在调试模式下运行tomcat时可能会进行热代码更改。
否则您可以在JRebel
进行调查答案 1 :(得分:3)
在Tomcat的“模块”标签中,您可以选择“编辑”并取消选中“自动重新加载启用”选项。
这样,几次更改就不需要重启(只要你以调试模式启动服务器)。
答案 2 :(得分:2)
不,没有别的办法。
只有在更新JSP / HTML / etc时才会注意到立即更改....不会自动加载/刷新类。当服务器处于活动状态时更改加载/实例化的类是不矛盾的,不是吗?至少它不应该是可能的。
最好在开发内容时执行单元测试。它可以帮助您减少恼人的服务器重启次数。
答案 3 :(得分:0)
如果您将项目设置为使用ant进行构建和部署,则只需将Ant构建器添加到项目构建器中,即可在每次保存文件后运行ant构建并部署目标。然后假设tomcat配置为支持自动部署,这应该实现你想要的,有两点需要注意:
答案 4 :(得分:0)
这可能是可能的。但是你的设置与我使用的设置略有不同。我只是使用tomcat + eclipse来使用Velocity和Torque进行Servlet开发。
以下内容适用于我,只要我在eclipse中保存,浏览器中就会显示更改。
我假设您有一个项目目录,例如
Apache的Tomcat的7.0.11 / web应用/ $ YOU_PROJECT / WEB-INF /类/
使用eclipse项目目录中的ln -s和WEB-INF中的classes目录创建符号链接。
然后配置eclipse将所有.class文件写入此目录。 (右键单击Eclipse中的项目并选择Properties,然后选择Java build path。
在$ tomcat / conf / context.xml配置文件中,第一个标记应为:
<Context allowLinking="true" reloadable="true">
如果还没有,请将以下内容添加到子项中。
<WatchedResource>WEB-INF/web.xml</WatchedResource>
这就是我所做的,但我不确定它是否适用于您的EE工具。
ps:此解决方案假设您使用的是linux / unix。我不知道它是否适用于Windows。主要问题是eclipse无法在项目目录之外编写类文件(这就是需要符号链接的原因)。
btw:Tomcat可能(根据类加载器,使用.jar文件和其他复杂的细节)在启用自动重新加载时泄漏大量内存,因此您可能希望增加允许的内存(主要是permgen)以防止内存不足来自tomcat的例外。
答案 5 :(得分:0)
我知道很久以前就已经问过这个问题了。但如果它对你们任何人都有帮助,请使用此信息。我使用Eclipse Kepler并在eclipse中配置Tomcat 7服务器。我不必执行任何其他配置,只需取消选中更新上下文路径复选框。就这些。将其他设置保留为默认值。
通过这种方式,资源文件(xhtml页面,css文件等)以及java源代码文件的更改将显示在浏览器中。仅对于类文件,将重新部署Web应用程序(不需要重新启动服务器以及手动操作)。
更新上下文路径的位置:双击 Server 选项卡下的tomcat服务器。在发布标签下,您会找到此更新上下文路径复选框。
绝对不需要为自动发布做任何其他更改。这适用于tomcat的正常模式和调试模式。
以下日食的屏幕截图: