本文主要是介绍eclipse复制项目运行时出现Multiple Contexts have a path of “/ssm“的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当我们需要在某个项目基础上再建立新项目时,只需在eclipse中打开某个项目,在项目资源管理器中选中该项目,右键,复制该项目,然后在空白处粘贴该项目,给新项目起个名字即可。比如原项目名字是ssm,新项目名字是ssmMybatisPlus,新复制的项目我们在执行右键run as --> run on server时,会出现如下错误
单击Details,会看到错误详情
Could not publish server configuration for Tomcat v9.0 Server at localhost.
Multiple Contexts have a path of "/ssm".
这时,我们打开项目资源管理器的server,找到server.xml文件,打开,去掉包含<Context docBase="ssm" path="/ssm" reloadable="true" source="org.eclipse.jst.jee.server:ssm"/>那一条。
再次运行,出现问题如下
解决方法,在项目资源管理器那里有个servers管理器,在那里把刚才运行的项目移除。
然后再次重新运行,就可以成功运行了。
我们可以看看新复制的项目有哪些变化,首先查看pom.xml和web.xml里面的信息没有变化,里面有项目id和显示信息,如果需要更改自己更改一下。
我们进入windows资源管理器的项目文件夹,找到.project文件,打开
可以看到项目名称已经被更改。
再 打开项目目录下 的.settings文件夹,找到org.eclipse.wst.common.component文件,打开,发现里面的deploy-name和context-root及java-output-path还会原来项目的。
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"><wb-module deploy-name="ssm"><wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/><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/resources"/><property name="context-root" value="ssm"/><property name="java-output-path" value="/ssm/build/classes"/></wb-module></project-modules>
这就造成我们运行时的网址还是原来项目的网址,如下图所示
改为如下内容
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"><wb-module deploy-name="ssm"><wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/><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/resources"/><property name="java-output-path" value="/ssmMybatisPlus/build/classes"/><property name="context-root" value="ssm"/></wb-module></project-modules>
可以看到部署名称deploy-name和路径context-root,都已经改为ssmMybatisPlus。
此时,如果我们打开项目资源管理器中的deployed resources下META-INF文件夹下的包名ks.sxxy发现复制的项目没有使用新的项目名称ssmMybatisPlus,而是用的原来的项目名称ssm,打开其中的pom.properties,
我们发现aitifactedId和m2e.projectName均是原项目名称ssm,并没有改为新的项目名称,这些都是maven相关的,所以我们更改maven的pom.xml文件中的项目信息。
把原来的
<groupId>ks.sxxy</groupId>
<artifactId>ssm</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging><name>ssm Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://maven.apache.org</url>
改为
<groupId>ks.sxxy</groupId>
<artifactId>ssmMybatisPlus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging><name>ssmMybatisPlus Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://maven.apache.org</url>
然后,选择项目,右键,maven-->update project,这时项目就会根据pom.xml发生更新,再次打开前面的deployed resources下META-INF文件夹下的包名ks.sxxy发现项目名称已经更新为ssmMybatisPlus,打开其中的pom.properties,发现里面内容也自动更新为新项目的
此时,再次运行项目,发现网址变为新项目的虚拟目录
这就是我们在复制项目后需要注意的一些问题。
这篇关于eclipse复制项目运行时出现Multiple Contexts have a path of “/ssm“的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!