同一个tomcat服务器里面部署两个JavaEE项目,都是用了log4j做日志。并且web.xml里面都监听了日志信息。

启动服务的时候报错。

于是在web.xml添加以下代码:

 

<display-name>myapp001</display-name>

	<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myapp001.root</param-value>
</context-param>

 

 

<display-name>myapp002</display-name>

	<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myapp002.root</param-value>
</context-param>

 

 

 

tomcat6中部署了两个web应用,都采用的是struts2+spring+hibernate框架,记录日志都用了log4j,结果webroot.app被重用了,启动tomcat时,出现错误,部分

错误信息如下:

严重: 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:\Program Files\tomcat6

\webapps\abc\] instead of [D:\Program Files\tomcat6\webapps\abc\] 

- Choose unique values for the 'webAppRootKey' context-param in your 

web.xml files!

 

 

 

At the end there are three possible solutions for the initial problem: 

(1) Provide any of your applications with a unique
'webAppRootKey'. 
(2) Set the servlet context parameter
'log4jExposeWebAppRoot' to   
'false'. This eliminates the use of log file
locations relative to
  
the web application's root directory but
still allows a log4j config   
location outside the classpath. 
(3) Remove
the 'Log4jConfigListener' from your application's web.xml. 

 

web应用中webapp. root重用问题解决方案的更多相关文章

  1. IntelliJ IDEA 2019.1.1 maven框架web.xml中web-app版本过低导致不能正常使用EL表达式的解决方案

     1.软件版本 IDEA版本:IntelliJ IDEA 2019.1.1 maven版本:apache-maven-3.6.1 Tomcat版本:tomcat-8.5 2.问题描述 IDEA使用如下 ...

  2. java web开发中遇到的问题及解决方案(个人学习日志,持续更新)

    转:http://blog.csdn.net/ducexu/article/details/7529613 2012.05.02   星期三 1.问题:导入的新工程,名字上出现感叹号. 原因:工程的j ...

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

    转:http://blog.sina.com.cn/s/blog_7bbf356c01016wld.html 使用spring中的Log4jConfigListener有如如下好处:     1. 动 ...

  4. Web app root system property already set to different value: 'webapp.root'

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

  5. 【转载】两个Web.config中连接字符串中特殊字符解决方案

    userid =  test password = aps'"; 那么连接字符串的写法为: Provider=SQLOLEDB.1;Password="aps'"&quo ...

  6. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例

     要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...

  7. 服务器启动时Webapp的web.xml中配置的加载顺序

    一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...

  8. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  9. 服务器启动时Webapp的web.xml中配置的加载顺序(转载)

    一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Ser ...

随机推荐

  1. 如何使用strace+pstack利器分析程序性能

    http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html

  2. c++ 设计模式1

    从面向对象谈起 1) 底层思维:向下,如何把握及其底层,从微观理解对象构造 (语言构造.编译转换.内存模型.运行时机制) 抽象思维: 向上,如何将我们的周围世界抽象为程序代码   (面向对象.组件封装 ...

  3. 【如何快速的开发一个完整的 iOS 直播 app】(美颜篇)

    来源:袁峥Seemygo 链接:http://www.jianshu.com/p/4646894245ba 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播 ...

  4. (转)Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并

    原文地址: http://blog.csdn.net/fym0512/article/details/7713006 本教程将讲述:gitk的Git Gui的部分常用功能和使用方法,包括:建库.克隆( ...

  5. The requested URL Not Found问题

    遇到这么一个问题: 最近刚转到linux下工作 在本地运行localhost下的thinkphp程序时,出现 一开始以为是权限问题,把目录以及文件权限都改为777依然不起作用 后来发现是rewrite ...

  6. Unrecognized VM 'MaxMetaspaceSize

    这个错误是因为 MaxMetaspace  元空间是java8的新参数,如所以java8以下的版本,jvm是不支持这个参数的.

  7. (ASP.Net)MVC4怎么设置@Html.TextBoxFor样式

    添加自定义样式和属性: @Html.TextBoxFor(s=>s.dd,new {@class="main",@style="width: 100px;" ...

  8. Linux公社资料库地址

    免费下载地址在 http://linux.linuxidc.com/用户名与密码都是http://www.linuxidc.com

  9. hdu 3450 树状数组

    思路:二分查找位置,之后是裸的树状数组. #include<set> #include<map> #include<cmath> #include<queue ...

  10. MJ刷新控件MJRefreshFooterView上拉之后收不回来的解决办法

    修改MJRefreshFooterView.m文件中的这个方法 #pragma mark - 状态相关 #pragma mark 设置状态 - (void)setState:(MJRefreshSta ...