我有一个Web应用程序(WAR文件)。当我使用WTP工具通过Eclipse 3.5部署它时,我能够从Eclipse中启动Tomcat服务器并查看应用程序的所有页面。但是,我没有在Tomcat主目录的 webapps 文件夹中看到我的WAR文件(或者就其爆炸格式而言)。我的印象是Tomcat在其 webapps 文件夹下读取所有Web应用程序。在这种情况下,Tomcat如何读取我的应用程序?我使用Tomcat 5.5.17作为我的应用程序服务器。
答案 0 :(得分:47)
我最近必须弄清楚有关此主题的更多详细信息,以解决应用程序启动问题,所以我在此处注意。
由服务器配置决定。双击服务器视图中的服务器以查看服务器“概述”。在“服务器位置”部分中,配置了默认值:
.metadata/.plugins/org.eclipse.wst.server.core/tmp0
wtpwebapps
应用程序“模块”也在服务器配置的“模块”选项卡中定义,它指定应用程序路径,文档库和模块名称。例如,您将项目myapp
部署到路径/MyApp
。
因此,如果您的工作区为/home/me/workspace/myapp
,则应用程序部署目录的路径为:
/home/me/workspace/myapp/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myapp.
部署内容由项目属性中的“部署程序集”确定。程序集中的每个条目都定义了将哪些文件部署到哪个路径。例如:
/src/main/java -> WEB-INF/classes
/src/main/resources -> WEB-INF/classes
/src/main/webapp -> /
Maven Dependencies -> WEB-INF/lib
因此,如果源树中有文件src/main/webapp/WEB-INF/web.xml
,则会将其部署到:
/home/me/workspace/myapp/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myapp/WEB-INF/web.xml
答案 1 :(得分:19)
它只是在Eclipse给Tomcat的context.xml
中定义的。如果要配置此行为,请在服务器视图中双击Tomcat实例,然后检查服务器位置部分。要实现您最初想要/期望的内容,您需要选择使用Tomcat安装,并在必要时还指定部署路径。