新进一个Web项目,有些小坎坷,于是引发了对于Eclipse和Tomcat的配置关系的思考。
首先提及一点当年的观点:Tomcat是一个容器,所有的功能都是以插件的形式放入其中;比如tomcat就是org.eclipse.wst.server插件进行管理的,可以是别的种类服务器,如下图,在添加Server的窗口单击“Download additional server Adapter”,即可装载诸如JBoss,Websphore等服务器。另外,即使你选择了一款Server,比如Tomcat 7,其实也是需要你指定本机应用路径,告诉Eclipse的插件在运行的时候到哪里去找运行文件。
而且配置是由eclipse来进行管理,其实就是使用了外部应用的可执行部分,配置部分还是有Tomcat进行接管。添加完了tomcat之后,会在工程里面增加一个工程:Servers。tomcat的配置全部都是在里面做。
双击添加的Server将会弹出一个配置页面,这个配置页面分为两部分:Overviewe以及Modules,这个配置页面里面对核心配置文件进行了整合,比如Ports区域就是server.xml文件。一点需要注意:Overview里面的配置内容一旦添加了工程之后就无法修改了,这一点有的时候会造成修改配置的困惑。Modules标签页中的Web Modules就是读取添加项目的.settings文件夹下面的org.eclipse.wst.common.component。默认的是工程名,但是我们这一次就发生了默认是ROOT的情况。
打开文件,发现里面的“context-root"字段值是ROOT,对该值进行修改,即可改变工程的根目录名称,或者直接在上图的界面中修改即可。这个修改仅是修改Eclipse开发环境的部署信息;对于真实部署无影响。
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> <wb-module deploy-name="zcm"> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <property name="context-root" value="ROOT"/> <property name="java-output-path" value="/zcm/target/classes"/> </wb-module> </project-modules>
在当尝试向Server中添加工程的时候,包如下错误:Tomcat version 7.0 Only Support J2EE 1.2...的异常:
这个问题的解决需要两个方面:
1.使用eclipse默认的tomcat7,确认其指定jdk版本是否为jdk7,之前就是错误的指定为jdk6;
2.工程,右键,Properties,Project Facets,将Dynamic Web Module修改为3.0;如果你之前值是>3.0,那么修改将失败,需要手动将.settings里面的org.eclipse.wst.common.project.facet.core.xml文件中的wst.jsdt.web值修改为3.0。