问题
在eclipse下有一个test1 WEB工程,如果你想复制这个工程,并且把工程名改为test2。那么当你到tomcate里添加此工程时,发现有两个test1工程,而工程test2却没有看到。其实这两个test当中的确有一个是你的test2工程,你可以运行看一下。那为什么在tomcate中它的工程名没有变呢?那是因为在你改名的时候,它没有去自动的修改org.eclipse.wst.common.component配置文件。你只要到test2工程下,找到.settings文件夹中的org.eclipse.wst.common.component配置文件,把这个配置文件中的与两处的test1改成test2就OK了。再到eclipse中刷新一下。
复制同一个项目后,由于没有修改项目中的eclipse的配置文件,导致Servers中的server.xml配置没有改变
删除多余的就可以了
server.xml文件中元详解
作用
一个WEB应用程序,处理当前WEB应用程序的所有请求,每一个必须使用唯一的上下文路径
属性
className:实现了org.apache.catalina.Context接口的类,标准实现类org.apache.catalina.core.StandardContext类
cookies:是否将Cookie应用于Session,默认值为true
crossContext:是否允许跨域访问,为true时,在程序内调用ServletContext.getContext()方法将返回一个虚拟主机上其它web程序的请求调度器。默认值为false,调 径用getContext()返回为null
docBase:绝对路径或相对于Host的appBase 属性的相对路径
privileged:为true,允许Web应用程序使用容器的Servlet
path:指定上下文路径。一个虚拟主机中,上下文路径必须唯一
reloadable:为true,Tomcat运行时,如果WEB-INF/classes和WEB-INF/lib目录中有改变,Tomcat会自动重新加载该WEB应用程序。虽方便,但开销也大,默认值为false,我们在调用可以打开,发布后再关闭。
cacheMaxSize:静态资源缓存最大值,以KB为单位,默认值为10240KB
cachingAllowed:是否允许静态资源缓存,默认为true
caseSensitive:默认为true,资源文件名大小写敏感,如果为false大小写不敏感
unpackWAR:默认为true
workDir:为WEB应用程序内部的Servlet指定临时读写的目录路径名。如没有设置,则Tomcat会在%CATALINA_HOME%/work目录下提供一个合适的目录
示例:
<Content path="/abc" docBase="d:/xyz" reloadable="true"/
eclipse下项目复制改名注意事项
当在Eclipse下复制Web工程
1、需要修改复制后新工程源码文件下 .settings 文件夹下的org.eclipse.wst.common.component中的内容为本工程名,明细如图
2、需要在右击项目,点击Properties,修改Web Project Settings中的名称为复制后的项目名,如下图: