使用Eclipse和Tomcat(Servlet 3.0)在Web片段中热部署JSP

时间:2013-07-03 18:10:20

标签: java eclipse jsp tomcat servlet-3.0

我的项目设置如下:

/parent
 /core
  /src/main/
   /resources/META-INF/
      web-fragment.xml
      /resources/jsp/
        fragment.jsp
   /java/
     FragmentTest.java
 /web
  /src/main/
    /webapp/
      /WEB-INF/web.xml
      /jsps/
        parent.jsp
    /java/
      ParentTest.java

'core'编译为.war中的.jar。

但是,在将此部署到Tomcat时,启用调试后,我可以编辑parent.jsp并进行热部署,但是如果我更新fragment.jsp则不会,而且我必须重建/重新部署/ etc。< / p>

但是,任一项目中对.java的任何更改都将成功进行热部署。

是否有人知道可能缺少任何配置等以使Web片段JSP进行热部署?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果执行以下操作,您将能够热部署JSP和Java文件:

将您的Web片段项目分成两个不同的项目,并从主Web应用程序中引用它们:

  • 包含所有Java源文件的文件(此项目必须是Web片段)。这将打包为一个JAR文件,您将能够像当前一样热门部署Java文件
  • 另一个项目,即动态Web项目,包含WebContent文件夹下的所有静态/ JSP文件。这将部署解压缩,并允许您热部署WebContent文件夹下的所有内容

可能有一个比这个更好的选择,但至少你可以正常工作,直到找到更好的东西。

答案 1 :(得分:1)

我有同样的情况。我有 test-web (您的)和测试网络片段(您的核心)。我通过以下方式解决了这些问题:

/ test-web - &gt;属性 - &gt;部署程序集我添加了指向 / test-web-fragment / src / main / resources / META-INF / resources 文件集规则(参见截图下面)。

当我从片段中更改页面中的某些内容时,eclipse构建器会将其复制到 / test-web / src / main / webapp 。之后,我右键单击应用服务器中的测试网站,然后单击完整发布,我必须对服务器进行更改。我在开发模式中使用的这个技巧。当我为生产制作构建时,我使用maven,没有这个规则。

1

2

3

答案 2 :(得分:0)

您的项目结构让我感到困惑。我们总是将JSP放在/src/main/webapp和子文件夹中。我完全可以想象这是你问题的根源。