webapp.root问题(转载)

由于懒惰想copy一份工程来做测试用因此当AVerPortal 和AverPortalTest 都在tomcat的编译项目的时候会出现错误

2010-5-14 9:45:40 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [F:\JDKandTOMCAT\TOMCAT\Tomcat 6.0\webapps\AVerPortal\] instead of [F:\JDKandTOMCAT\TOMCAT\Tomcat 6.0\webapps\AVerPortalTest\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

原因是当在web.xml中没指定

<context-param>
<param-name>webAppRootKey</param-name>
<param-value>AVerPortalTest</param-value>
</context-param>

的时候按照默认的

做法1

在tomcatserver启动项目目录删除AVerPortal 和AverPortalTest 其中一个

做法2

在web.XML中添加webAppRootKey指定好

以下是转帖

近日,因为懒惰,直接从原有项目切出一个分块成了一个项目,然后同时发布启动,出现以下异常

Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:\tomcat-5.0.19\webapps\tzbms\] instead of [D:\tomcat-5.0.19\webapps\its\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

at org.springframework.web.util.WebUtils.setWebAppRootSystemProperty(WebUtils.java:99)
at org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:116)
at org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:51)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3773)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4270)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:850)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:638)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:320)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:875)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:657)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1008)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:394)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1134)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:832)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1126)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:521)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2345)
at org.apache.catalina.startup.Catalina.start(Catalina.java:594)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:297)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:398)

看看异常,还是挺简单的,应该是两个项目的设置重复了,导致出错,但我发现web.xml里并没有配置webAppRootKey项,然后查阅网上资料,参考

hwctl的专栏http://blog.csdn.net/hwctl/archive/2007/07/31/1719597.aspx
,原来是因为如果没有web.xm 内没有设置webAppRootKey项,是为默认设置


public static void setWebAppRootSystemProperty(ServletContext servletContext) throws IllegalStateException {
String param = servletContext.getInitParameter(WEB_APP_ROOT_KEY_PARAM);
String key = (param != null ? param : DEFAULT_WEB_APP_ROOT_KEY);
String oldValue = System .getProperty(key);
if (oldValue != null ) {
throw new IllegalStateException ("WARNING: Web app root system property already set: " + key + " = " +


oldValue + " - Choose unique webAppRootKey values in your web.xml files!" );
}
String root = servletContext.getRealPath("/" );
if (root == null ) {
throw new IllegalStateException ("Cannot set web app root system property when WAR file is not

expanded");
}
System .setProperty(key, root);
servletContext.log("Set web app root system property: " + key + " = " + root);
}

从代码看出,该方法其实就是把该web application的根目录的绝对文件路径作为属性保存在 System的属性列表中。该属性的名字,由web.xml文件中的名为"webAppRootKey"的参数值指出。如果不在web.xml中定义 webAppRootKey参数,那么属性名就是缺省的"webapp.root".在我们的petclinic项目中已经定义了 webAppRootKey参数,其值为"petclinic.root",因此,属性的名字就是"petclinic.root".

最后将webAppRootKey项配置好,错误解决。
rn-demo:fetch,FlatList,wanandroid,webview,react-navigation,react-native-scrollable-tab-view rn-demo fetch、FlatList、wanandroid、webview、react-navigation、react-native-scrollable-tab-view ios问题 由于ios不能加载http链接,需要在info.plist添加App Transport Security Settings,并设置Allow Arbitrary Loads为true screen pic 立即下载

相关推荐

从零到一:手把手教你用STM32和WiFi打造智能温室大棚的物联网核心

本文详细介绍了如何利用STM32单片机和WiFi技术从零构建智能温室大棚的物联网核心系统。内容涵盖硬件选型、传感器集成、低功耗WiFi通信、自动控制逻辑及OLED显示,提供实际部署中的优化技巧和故障排查方案,帮助开发者打造稳定可靠的农业自动化解决方案。

c7d8e的博客 165

web项目配置webAppRootKey 获得根目录

log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置    webAppRootKey   web.sample.root 可以用System.getProperty("web.sample.root")来获取属性值。在Eclipse调试Web项目时,项目的路径是一个临时路径,不在真正的路径下,可以通过上述语句打印出属性值,来看看临时项

洪文聊架构 6793

光电转换器件PMT,APD总结

PMT和APD都属于单点探测器,只能探测光子信息,可以通过扫描方式测光谱。 1. PMT PMT:光电倍增管,是光子技术器件中的一个重要产品,它是一种具有极高灵敏度和超快时间响应的光探测器件。 原理:光电倍增管是一种真空器件。它由光电发射阴极(光阴极)和聚焦电极、电子倍增极及电子收集极(阳极)等组成。当光照射到光阴极时,光阴极向真空中激发出光电子。这些光电子按聚焦极电场进入倍增系统,并通过进一步的二次发射得到的倍增放大。然后把放大后的电子用阳极收集作为信号输出。 优点:因为采用了二次发射倍增系统,.

Ammon_Zhang的博客 1万+

多重web应用中webapp. root重用的问题

web.xmlwebAppRootKey ------------------------------------------------------------------------------------------------ 1、 web.xml配置 webAppRootKey webapp.root "webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"

sdx1237的博客 1万+

解决多重web应用中webapp. root重用的问题

  java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:\Program Files\apache-tomcat-7.0.16\wtpwebapps\nss_upgrade\] instead of [D:\Program ...

qq123zhz的专栏 236

android点击链接跳转到app,android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据...

http://itindex.net/blog/2014/11/07/1415353560000.html点击浏览器中的URL链接,启动特定的App。首先做成HTML的页面,页面内容格式如下:启动应用程序这一句就可以了。各个项目含义如下所示:scheme:判别启动的App。 ※详细后述host:适当记述path:传值时必须的key ※没有也可以query:获取值的Key和Value ※没...

weixin_42347660的博客 2455

Tomcat6 webapp ROOT 文件夹

原来Tomcat低版本(<5)的时候可以直接拷贝war包到webapp下面去,但是Tomcat6中,会拷贝一份到ROOT文件夹下去,这样Tocmat启动的时候,会读取多个web.xml加载多个Spring的IOC容器。 虽然有Context的隔离不会产生业务错误,但是会浪费内存,同...

chifu4298的博客 204

tomcatWeb app root system property already set to different value: ‘webapp.root

前言 转载:https://blog.csdn.net/u013628152/article/details/46647943 错误描述: 其他人可以正常访问,但是自己的不行。首先确认代码没问题。 最后根据启动过程中报的一个异常 错误信息: Web app root system property already set to different value: 'webapp.root' 解决办法 修改app1的web.xml ,如果没有,则添加。 webAppRootKey app1.

Meditation_Crazy 335

log4j.properties读取webapp.root值失败,导致的setFile(null,..)的解决方案

转载自:http://blog.csdn.net/java1234321/article/details/42103341     这个问题折磨了我整整一天,特此写出来帮助后来的小伙伴们少走弯路.     我先描述环境,你来看看是否和你的情况相似.     项目中使用了spring与log4j,使用org.springframework.web.util.Log4jConfigListe

提辖鲁的博客 868

tomcat设置端口号和默认webapp

tomcat一下载,解压之后webapps目录下自带几个webapp: * docs文档:这是一个静态页面集,不用启动tomcat也可以阅读 * examples样例 * hostmanager主机管理器 * manager应用管理器 * ROOT根目录:这个app可以访问以上四个app,这个app是默认的app,这个app十分简单,只有一些资源文件和一个jsp页面。 安装完...

andaren6337的博客 938

Tomcat 配置ROOT项目

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34198453的博客 764

tomct问题之-webapps下多出的ROOT目录

问题发生背景:由于公司的web环境大都是tomcat,所以在项目发布出现小问题为了快速解决时常会需要手动增加或修改war包解压后的内容。但是在修改时有的webapps下除了war包解压后的包文件,还会多出一个ROOT文件夹,而且开发通常都会告诉我:别忘了修改ROOT里面的内容。为什么呢,为什么还要修改ROOT下的内容?下面先讲解tomcatwebapps中ROOT...

weixin_33863087的博客 583

web应用中webapp. root重用问题解决方案

同一个tomcat服务器里面部署两个JavaEE项目,都是用了log4j做日志。并且web.xml里面都监听了日志信息。 启动服务的时候报错。 于是在web.xml添加以下代码: <display-name>myapp001</display-name> <context-param> <param-name&g...

weixin_30448685的博客 320

tomcat ROOT中的lib和webapp中的lib的作用

相同点:都是用来存放jar包的 不同点:和webapps同个目录下的那个lib文件夹所放的jar包对tomcat 服务器和你的webapp 来说都是可以调用的(这时候假如tomcatweb都依赖某个相同的jar包时你就可以把这个jar包放在这儿了). webapps中的lib只能够被webapp掉用 转载于:https://www.cnblogs.com/codetime/p/5...

weixin_30505225的博客 449

spring中的Log4jConfigListener作用和webapp.root的设置

spring中的Log4jConfigListener作用和webapp.root的设置转载 2014年01月21日 19:43:3331411转:http://blog.sina.com.cn/s/blog_7bbf356c01016wld.html使用spring中的Log4jConfigListener有如如下好处:    1. 动态的改变记录级别和策略,不需要重启Web应用,如《Eff...

亿卢向倍的专栏 343

eclipse启动tomcat访问不到主页,但是可以访问自己创建的项目

eclipse启动tomcat访问不到主页 转载2012年12月17日 13:19:40 标签: tomcat/ Tomcat 21871 在eclipse中配置好tomcat后访问不到主页,而访问自己建的项目时则能访问到,问题原因何在? 查阅了相关资料后得知 在eclipse中启动tomacat后,它去启动的web项目并不是tomcat文件夹下的w...

weixin_34292402的博客 735

Cannot set web app root system property when WAR file is not expanded

Cannot set web app root system property when WAR file is not expanded 在tomcat下面可以,在weblogic下面不行的处理方法; 学习了http://blog.csdn.net/ouvidia/article/details/38453353 我采用了在web.xml 中配置 如下参数的方法: <...

weixin_30381793的博客 217

java.lang.IllegalStateException: Web app root system property already set to different value

同一个tomcat下面部署多个项目时,可能会报这个错误: java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:/tomcat-5.0.19/webapps/tzbms/] inst...

weixin_33733810的博客 106
上一篇: excel表格导入oracle数据库
inter_97
博客等级 码龄18年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值