Eclipse的Web工具平台(WTP),您可以到Tomcat配置为“不发布服务器模块”:
Web内容将直接从动态Web项目的“的WebContent”文件夹中提供服务。 定制的上下文是用来在Web应用程序的类加载器的可用项目的依赖。
在5步骤的过程(只是开玩笑,你挑的步骤#),在技术上发生了什么和在哪里了Eclipse生成文件? 我也注意到,Eclipse中生成的org.eclipse.jst.server.tomcat.runtime.70.loader.jar
在Tomcat的lib目录下的文件。
我们的想法是直接从开发工作区的散射目录结构服务的web应用程序,而不打包模块插入的JAR然后最终在WEB-INF/lib
在WAR。
主要好处是:
- 你并不需要建立档案。
- 当您在工作区中更改资源,该变化反映在运行Web应用程序而不用重新部署web应用程序或重新启动服务器。
使用Servlet 3.0,网络资源,也可以在库JAR捆绑在META-INF/resources
,那么类和资源可以来自多个工作区目录。
Tomcat的7.0支持VirtualWebappLoader
和VirtualDirContext
配置基于分散的资源和类目录的集合的Web应用程序。
要直接从Eclipse工作区服务您的Web应用程序,WTP产生合适的Tomcat配置匹配你的项目结构$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/conf/server.xml
出于某种原因,WTP不直接使用Tomcat的加载器和上下文实现,但有自己的WtpDirContext
和WtpWebappLoader
这是略有不同,但相似的。 (我相信这种方法比在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?