【问题标题】:How do you develop JSF apps?您如何开发 JSF 应用程序?
【发布时间】:2009-01-15 13:23:05
【问题描述】:

我第一次从事一个需要构建一个大量使用 JSF(尤其是 ICEfaces)的 web 应用程序的项目。有很多东西需要编码,包括 CSS、HTML、JSP/Java,当然还有 JSF。

我在 Eclipse 中完成所有这些工作,并使用 Eclipse 负责启动的本地 tomcat 服务器来运行应用程序。

无论如何,我注意到这一切都非常缓慢。当我更改一个 JSF 时,我必须重新启动网络服务器,以便查看新结果。通常我只是对布局和停止、重新启动、刷新所需的 10 到 15 秒以上的时间感兴趣,这让我发疯。我每天重启 Tomcat 一百次——啊!我需要更快的周转!

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

【问题讨论】:

    标签: java eclipse jsf


    【解决方案1】:

    我正在使用几乎相同的配置在 JSF 中开发我的应用程序(Tomcat 5.5 由我的 Eclipse 3.3 和 JBoss 工具运行)。 我也在使用 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>
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        查看分解的 WAR 文件并找到您的标记文件所在的位置。您可以直接更改它,也可以将更新的文件移到那里。稍后刷新浏览器并更改您的标记!

        您可以通过添加 ANT 命令来更快地完成此操作。我正在使用 Netbeans,但我对 ANT 不太擅长(而且我的截止日期没有给我时间弄清楚)所以我制作了一个小 shell 脚本,“cp 将我的所有文件都放入爆炸的 WAR 目录中。

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

        不过要小心! Tomcat 6 的热部署功能运行良好,但它不能正确释放先前部署使用的 PermGen 内存。因此,经过几次热部署后,Tomcat 开始抛出“PermGen 错误:内存不足”异常,您唯一的办法就是重新启动。

        【讨论】:

          【解决方案4】:

          如果您只是在玩 CSS,那么使用 Firebug 之类的东西就地编辑它,然后当您满意时,您可以将它全部复制并粘贴到 Eclipse 中。同上 HTML;事实上,当您知道 JSF 组件的去向时,只需创建一个虚拟页面,然后在 fast web development IDE 中编辑它。

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

                【解决方案7】:

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

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

                【讨论】:

                  【解决方案8】:

                  我以前也有同样的问题。 使用 JavaRevel 即时重新部署代码的快速解决方案(免费用于非商业用途,如果您想在公司中使用它,则需要花费几美分) http://www.zeroturnaround.com/javarebel/

                  希望这会有所帮助,

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-04-24
                    • 2011-01-21
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-09-22
                    • 2010-11-21
                    相关资源
                    最近更新 更多