我正在尝试将eclipse kepler用于Java EE 7.我已经安装了JBoss Tools并成功添加了JBoss Wildfly作为服务器。但是,我的更改不会自动部署。无论如何,应用程序可以像使用glassfish一样自动部署吗?
答案 0 :(得分:27)
使用Eclipse,在WildFly Server上单击两次以编辑以下属性:
\.jar$|\.class$
就是这样。祝你好运!
答案 1 :(得分:21)
@varantes和@Sean基本上都是正确的,但这些答案并不完整。
不幸的是,在Java服务器环境中进行完全零停机热部署的唯一方法是使用付费JRebel或免费spring-loaded工具。
但对于小型项目,有一些方法可以通过部分热部署来加快工作速度。基本上:
*.html
,*.xhtml
文件内进行更改
刷新浏览器后立即反映出来。*.jsp
文件进行热部署,那么您应该这样做
在 $ {wildfly-home} /standalone/configuration/standalone.xml 中
进行以下更改:<jsp-config/>
<jsp-config development="true"/>
重新启动服务器并享受Web文件的热部署。
但是在修改*.java
源文件时,只能进行部分热部署
正如@varantes在他的回答中所述,启用应用程序重新加载行为并将正则表达式模式设置为\.jar$|\.class$
是一个选项,但是有严重的缺点:整个模块重新启动,因此:
所以个人而言,我不鼓励这种解决方案 JVM支持(在调试模式下)方法体的代码交换。因此,只要您仅修改现有方法的主体,就可以在家(零停机时间,立即反映更改)。但您必须在服务器设置中禁用自动发布,否则应用程序的状态仍将被该重新发布销毁。
但是如果你非常喜欢java代码(添加类,注释,构造函数),那么不幸的是我只能建议将发布设置为从不自动发布(或关闭服务器),当你完成工作时java文件,然后手动重启您的模块(或开启服务器)。由你决定。
它适用于小型Java项目,但对于较大的项目,JRebel非常宝贵(或者只是弹簧加载),因为上述所有方法都不够。
顺便说一句:也是因为这些问题,像Rails
/ Django
/ Play! Framework
这样的解决方案获得了如此巨大的人气。
祝你好运,快速编码!
答案 2 :(得分:8)
我假设您使用的是最新版本的Wildfly(撰写时为8.0 Beta 1)。
在standalone.xml配置文件中,查找&lt; jsp-config /&gt; 。添加属性 development =“true”,它应该热部署。生成的配置如下所示:
<jsp-config development="true"/>
答案 3 :(得分:4)
在xPath = // servlet-container / jsp-config /
中的配置文件中添加属性(开发,检查间隔,修改测试间隔,重新编译失败)<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</servlet-container>
(适用于WildFly-8.0.0.Final)
答案 4 :(得分:0)
以调试模式启动服务器,它将跟踪方法内部的机会。其他更改它将要求重新启动服务器。