服务模块的技术细节没有在Eclipse WTP和Tomcat发布?(Technical detail

2019-07-22 17:43发布

Eclipse的Web工具平台(WTP),您可以到Tomcat配置为“不发布服务器模块”:

Web内容将直接从动态Web项目的“的WebContent”文件夹中提供服务。 定制的上下文是用来在Web应用程序的类加载器的可用项目的依赖。

在5步骤的过程(只是开玩笑,你挑的步骤#),在技术上发生了什么和在哪里了Eclipse生成文件? 我也注意到,Eclipse中生成的org.eclipse.jst.server.tomcat.runtime.70.loader.jar在Tomcat的lib目录下的文件。

Answer 1:

我们的想法是直接从开发工作区的散射目录结构服务的web应用程序,而不打包模块插入的JAR然后最终在WEB-INF/lib在WAR。

主要好处是:

  • 你并不需要建立档案。
  • 当您在工作区中更改资源,该变化反映在运行Web应用程序而不用重新部署web应用程序或重新启动服务器。

使用Servlet 3.0,网络资源,也可以在库JAR捆绑在META-INF/resources ,那么类资源可以来自多个工作区目录。

Tomcat的7.0支持VirtualWebappLoaderVirtualDirContext配置基于分散的资源和类目录的集合的Web应用程序。

要直接从Eclipse工作区服务您的Web应用程序,WTP产生合适的Tomcat配置匹配你的项目结构$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/conf/server.xml

出于某种原因,WTP不直接使用Tomcat的加载器和上下文实现,但有自己的WtpDirContextWtpWebappLoader这是略有不同,但相似的。 (我相信这种方法比在Tomcat中当前的解决方案较旧的没有为TLD扫描一些特殊的逻辑- 。我不知道这是否仍与最新的Tomcat版本要求)这些辅助类包含在org.eclipse.jst.server.tomcat.runtime.70.loader.jar你注意到了。

无发行即成模块 ,当您更改网络资源META-INF/resources库模块中,这种变化不会在浏览器重新加载当前页面后,在运行的应用程序直接可见。



文章来源: Technical details of serve modules without publishing in Eclipse WTP and Tomcat?