Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Eclipse和Tomcat(Servlet 3.0)在web片段中热部署JSP_Java_Eclipse_Jsp_Tomcat_Servlet 3.0 - Fatal编程技术网

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

Java 使用Eclipse和Tomcat(Servlet 3.0)在web片段中热部署JSP,java,eclipse,jsp,tomcat,servlet-3.0,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

我有一个这样的项目:

/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

但是,在两个项目中对.java的任何更改都将成功热部署

有人知道让web片段JSP进行热部署可能缺少的任何配置等吗


谢谢

你的项目结构让我有点困惑。我们总是将JSP放在
/src/main/webapp
及其子文件夹中。我可以很好地想象这就是问题的根源。

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

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

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

可能有一个比这个更好的选择,但至少在找到更好的选择之前,您可以正常工作。

我也有同样的情况。我有测试网页(你的父母)和测试网页片段(你的核心)。我通过以下方式解决了这些问题:

/test web->Properties->Deployment Assembly中,我添加了文件集规则,该规则指向/test web fragment/src/main/resources/META-INF/resources(参见下面的屏幕截图)

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


你好,马塞尔-是的,我们以前就是这样做的。但是,我们需要构建一些定制的.wars,因此我们希望将所有JSP移动到一个公共依赖项中(使用web片段)。在这种情况下,JSP应该存在于META-INF/resources/In.jarAh中-我明白你的意思,我们在战争中的JSP在webapp下,编辑了我的问题我不想“碰”这个问题,但我有同样的问题。有什么解决办法吗?@cs.tropic使用JRebel有点帮助,但我无法让我的雇主为此付费:(@MarcelStör-正在处理:)不过JRebel在处理web碎片方面并不完美。看起来它们不是一个非常流行的功能,我不太明白。在模块周围分散静态资源的能力似乎非常有用!还被列为eclipse bug:eclipse自己进行部署,而不是Maven,对吗?Tomcat是在服务器上使用Debug启动的?@nit这是正确的。虽然上次我尝试在Maven服务器上展示了同样的行为,但你找到了另一种方法吗?恐怕我从来没有找到过。从web片段转移到Spring资源。