Eclipse中一个项目导入两次,其中一个改名称运行出错解决方法

Eclipse中一个项目导入两次,但是其中一个项目改了名称,导致其中一个启动失败问题,网上查了一圈,是因为web.xml文件中缺少webAppRootKey属性配置,由于没有指定该配置,导致项目加载时使用的默认值,两个项目名称一样,最后只有一个启动成功,而另一个则报这样的错误:

java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [G:\Eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BookDinner\] instead of [G:\Eclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\School\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

    at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:162)

at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:119)

    at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:49)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4685)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)

    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)

    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)

    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)

    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)

    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)

    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

    at org.apache.catalina.startup.Catalina.start(Catalina.java:633)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)

    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

具体的报错也就是下面这一行:

        Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 

Web应用的根系统属性已经被设置为不同的值:root' = [/home/user/tomcat/webapps/project1/]而不是[/home/user/tomcat/webapps/project2/]

也就是这个项目已经改了另一个名字并且以前的名字还存在。比如之前的项目名称是Book,然后名称改成了其他的了。

也就是:在部署两个项目,这两个项目都是采用了一个框架,只是业务系统进行了修改。部署的时候发现启动有问题

 

    网上找了下资料,是上下文的一个属性webAppRootKey的值相同冲突了,需要重新配置一个。在两个项目的任意一个web.xml文件中添加下面代码解决

 

如果项目中你想使用别人的框架又不想使用这个框架的包名,那么想要进行修改的话,还需要改几样东西。

如果没有在web.xml文件上加上那一段话,控制台会报这样一个错误

具体的错也就是这个

 

 

  1. 如果你把项目的包名改了,然后在mapper.xml文件上的包名位置那里,改包名。如果项目中涉及mapper.xml文件的,就打开mapper.xml文件,找到包名放置的位置,然后把包名改一下,改成你项目当中的包名名称。比如:

 

注意:仔细查看mapper.xml文件的包名,要全部符合你项目中的包名,不然还是会报错。

  1. 项目中配置文件,打开applicationContext.xml等等的xml文件改包名

这里的所有配置文件里面的包名也都需要改成你项目中的文件。

  1. 改完之后你会发现,其他的包下面的java文件也报错了,然后你打开那些文件,把包重新导一下,导成现在的包就可以了。

然后里面的包名:

 

改完之后美誉报错了然后启动项目,

 

出现这行日志就标志着成功了。

然后可以看到登录页面:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值