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,发现里面内容也自动更新为新项目的

此时,再次运行项目,发现网址变为新项目的虚拟目录

 

 这就是我们在复制项目后需要注意的一些问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值