你如何开发JSF应用程序?

时间:2009-01-15 13:23:05

标签: java eclipse jsf

我第一次在一个需要构建一个大量使用JSF(尤其是ICEfaces)的webapp的项目上工作。有许多要编码的东西,包括CSS,HTML,JSP / Java,当然还有JSF。

我正在Eclipse btw中使用本地tomcat服务器执行所有这些操作,eclipse负责启动以运行应用程序。

无论如何,我注意到这一切都非常缓慢。当我更改一个JSF时,我必须重新启动Web服务器,以便查看新结果。通常我只是想玩布局和10-15 +秒停止,重启,刷新让我发疯。我每天重启tomcat一百次 - 唉!我需要更快的转变!

我做错了吗?这是所有Web开发人员的自然状态吗​​?

8 个答案:

答案 0 :(得分:8)

我正在使用几乎相同的配置在我的JSF中开发应用程序(我的Eclipse 3.3使用JBoss Tools运行Tomcat 5.5)。 我也在使用Facelets for JSF,并且web.xml中有一个重要的上下文参数我可以设置,以便能够通过自动刷新修改我的XHTML文件(即我不需要重启Tomcat来查看我的变化)。 所以,在我的web.xml中,我有这个:

<context-param>
    <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
    <param-value>1</param-value>
</context-param>

答案 1 :(得分:3)

我正在使用eclipse和maven开发JSF应用程序。当对程序进行更改并保存更改时,它会自动重新加载。当您更改任何配置文件时,必须重新启动。

答案 2 :(得分:0)

您可以通过直接将更新的标记文件复制到相应的webapp目录中来解决此问题,至少是布局/标记位。

查看爆炸的WAR文件,找到标记文件的位置。您可以直接更改它或在那里移动更新的文件。稍后浏览器刷新,您的标记应该更改!

您可以通过添加ANT命令来更快地完成此操作。我正在和Netbeans一起工作,而且我对ANT并不是很好(我的截止日期并没有给我时间来弄明白)所以我制作了一个小脚本脚本'cp将我的所有文件放入爆炸的WAR目录中。< / p>

但是,如果更改Java或配置文件,则需要重新部署WAR。我不确定你运行的是什么版本的Tomcat但是要在我的Tomcat 6实例上执行此操作,只需将WAR文件移动到webapps目录中就会导致Tomcat接收并重新部署。

虽然很棒! Tomcat 6的热部署功能运行良好,但它没有正确释放先前部署使用的PermGen内存。因此,在几次热部署之后,Tomcat开始抛出“PermGen错误:Out of Memory”异常,而你唯一的办法是重启。

答案 3 :(得分:0)

如果您只是在玩CSS,那么可以使用类似Firebug的内容进行就地编辑,然后当您满意时,可以将其全部复制并粘贴到Eclipse中。同上HTML;实际上,当您知道JSF组件的位置时,只需创建一个虚拟页面,然后在fast web development IDE中对其进行编辑。

Web开发通常不需要频繁重启Tomcat:)

答案 4 :(得分:0)

我使用Jboss Developer Studio(v2.0)并将我的项目设置为热部署。这意味着除了实体,EJB和消息包之外,我没有重新启动任何更改。适合大多数POJO项目。

答案 5 :(得分:0)

我曾经在Eclipse中自己开发JSF页面而没有任何设计工具(我不喜欢它们)。使用设计器工具很难制作复杂的UI布局 - 工具仅用于简单的布局。当你有很多DHTML,CSS时,你应该自己写页面。

关于服务器重启:如果您以正确的方式配置Tomcat,更改JSP页面将不会导致服务器重启(热部署或像这样的smth)。如果更改bean中的方法签名,当然必须重新启动。

答案 6 :(得分:0)

您不必重新启动Tomcat即可查看更改。只需复制$ CATALINA_HOME / webapps中的WAR即可自行重新部署应用程序。但这需要几秒钟。

有多种方法可供部署,请参阅Tomcat 6的此文档:http://www.mbaworld.com/docs/appdev/deployment.html

答案 7 :(得分:0)

我曾经遇到过同样的问题。 使用JavaRevel即时重新部署代码的快速解决方案(免费用于非商业用途,如果您想在公司中使用它,则需花费便士) http://www.zeroturnaround.com/javarebel/

希望这有帮助,