`
yueguangyuan
  • 浏览: 336856 次
  • 性别: Icon_minigender_1
  • 来自: 新加坡
社区版块
存档分类
最新评论

Spring 移植到WebLogic10上出现的Log4j.properties错误

阅读更多

问题是在Tomcat移植到Weblogic10上出现的问题,主要原因就是Spring Hibernate与WebLogic包的冲突造成的,但是我进行了很多尝试,仍然不能解决这个问题。

以下是我所使用的Log4j配置,在Tomcat下运行都是正常的:

 
  1. ### direct log messages to stdout ###   
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
  3. log4j.appender.stdout.Target=System.out   
  4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
  5. log4j.appender.stdout.layout.ConversionPattern=%d - %c -%-4r [%t] %-5p %c %x - %m%n   
  6.   
  7. ### direct messages to file MaxBackup test.log ###   
  8. log4j.appender.file=org.apache.log4j.RollingFileAppender   
  9. log4j.appender.file.File=test.log   
  10. log4j.appender.file.MaxFileSize=100KB   
  11. log4j.appender.file.MaxBackupIndex=1  
  12. log4j.appender.file.layout=org.apache.log4j.PatternLayout   
  13. log4j.appender.file.layout.ConversionPattern=%d - %c -%-4r [%t] %-5p %c %x - %m%n   
  14.   
  15. ### set log levels - for more verbose logging change 'INFO' to 'DEBUG' ###   
  16. log4j.rootLogger=DEBUG,stdout,file   
  17. log4j.logger.org.hibernate=error   
  18. log4j.logger.org.springframework=error   
  19. log4j.logger.org.apache=error   
  20. log4j.logger.org.apache=error   
  21.   
  22. ### log JDBC bind parameters ###   
  23. log4j.logger.org.hibernate.type=error  

1.Spring2.0.5运行于WebLogic10上
  在服务器上很难成功的打印出log 一般只能生成一次Log,就是在domain管理器启动的时候,然后将我生成的test.log删除后,就不会再次生成Log

2.Spring2.0.5 运行于WebLogic10上,使用Spring  Log4jConfigServlet自定义加载Log4j
   方法参考:http://blog.csdn.net/zhizhesky/archive/2007/06/02/1634908.aspx 上面提供的配置,但是仍然无效,并且抛出Cannot set web app root system property when WAR file is not expanded这样严重的错误。错误原因是明显的,由于WebLogic上获得资源文件时不能采用getRealPath("/")这样的方法,但是考虑到这种不兼容对系统的潜在威胁,我决定直接放弃Spring2.0.5(目前使用Spring2.0.5只是因为Spring提供的快速加载Beans的好处,而没有使用Spring2提供的自定义xml和AspectJ风格的AOP配置,所以降级没有什么问题)。
3.Spring-on-wls 1.2.5 运行于Webogic10上
   由于WebLogic与Sping冲突非常多,所以被迫采用Spring版本降级,采用bea官方提供的Spring-on-wls 1.2.5来进行系统集成,为的是减少更多潜在的兼容性问题。
  但是使用以后仍然没有获得满意的效果,而且出现了更为奇怪的错误情况:
  A.首次更换spring.jar,系统正常运行Log文件test.log正常输出,但是我重新deploy以后就出现Log4j的错误警告:

   log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
   log4j:WARN Please initialize the log4j system properly.

     仍然是Spring与Weblogic的冲突造成,我晕,没办法,做一次修改,将log4j.properties进行修改,将log4j.logger.org.springframework=error注释掉,结果运行正常,日志也正常打出,但是这样在debug级别Spring的所有日志都会被打出,造成服务器启动异常缓慢。
  无奈,将刚才的配置释放,这次不再出现上面的警告,而是出现了更奇怪的现象,Hibernate的所有debug日志都打出,比Spring的所有debug还慢许多!我吐血……

     这个问题已经搞了我一个星期了,实在是没有办法解决,所以拿出来请大家,谢谢了先!就目前的情况Spring Hibernate移植到Weblogic上将会有更多不可预知的麻烦发生,紧张ing……

分享到:
评论
4 楼 joeyta 2007-07-30  
comment web.xml 裡的

webAppRootKey
log4jConfigLocation
Log4jConfigListener

及將所有 Log4j 裡的相對路徑改成絶對路徑就能解決.
3 楼 yueguangyuan 2007-06-13  
经过测试又发现了问题,原来使用Servlet加载配置会晚于Listener启动,而Spring启动以后就是采用Log4j来写日志,如果出现系统异常如applicationContext.xml配置出错,则日志无法打出,仅仅出现严重错误on listener start
解决办法也很容易,把Servlet加载直接改为Listener加载,然后继承Spring默认的Log4j加载Listener Log4jConfigListener,覆盖之,然后重写contextInitialized() 方法(仍然是采用Servlet里面的方法就可以)
继续在使用跟踪这个问题
2 楼 yueguangyuan 2007-06-11  
自问自答了,Spring的加载不成功,就自己写方法加载,<br/>
web.xml配置:<br/>
<div class='code_title'>java 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-j' start='1'>
    <li class='alt'><span><span>&lt;servlet&gt;  </span></span></li>
    <li class=''><span>        &lt;servlet-name&gt;log4jinit&lt;/servlet-name&gt;  </span></li>
    <li class='alt'><span>        &lt;servlet-<span class='keyword'>class</span><span>&gt;com.Log4JInit&lt;/servlet-</span><span class='keyword'>class</span><span>&gt; (此处需要修改同上的路径)  </span></span></li>
    <li class=''><span>        &lt;init-param&gt;  </span></li>
    <li class='alt'><span>            &lt;param-name&gt;log4j-config-file&lt;/param-name&gt;  </span></li>
    <li class=''><span>            &lt;param-value&gt;/WEB-INF/classes/log4j.properties&lt;/param-value&gt;  </span></li>
    <li class='alt'><span>        &lt;/init-param&gt;  </span></li>
    <li class=''><span>        &lt;load-on-startup&gt;<span class='number'>1</span><span>&lt;/load-on-startup&gt;  </span></span></li>
    <li class='alt'><span>    &lt;/servlet&gt;   </span></li>
</ol>
</div>
<br/>
<br/>
然后定义一个Log4JInit方法采用WebLogic支持的资源文件读入方式读取配置文件:<br/>
<div class='code_title'>java 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-j' start='1'>
    <li class='alt'><span><span class='keyword'>public</span><span> </span><span class='keyword'>void</span><span> init() </span><span class='keyword'>throws</span><span> ServletException {  </span></span></li>
    <li class=''><span>        String file = getServletConfig().getInitParameter(<span class='string'>"log4j-config-file"</span><span>);  </span></span></li>
    <li class='alt'><span>        InputStream is = getServletContext().getResourceAsStream(file);  </span></li>
    <li class=''><span>        Properties props = <span class='keyword'>new</span><span> Properties();  </span></span></li>
    <li class='alt'><span>          </span></li>
    <li class=''><span>        <span class='keyword'>try</span><span> {  </span></span></li>
    <li class='alt'><span>            props.load(is);  </span></li>
    <li class=''><span>        } <span class='keyword'>catch</span><span> (IOException e) {  </span></span></li>
    <li class='alt'><span>            System.err.println(<span class='string'>"====== error :Load log4j configuration failed"</span><span>);  </span></span></li>
    <li class=''><span>        }  </span></li>
</ol>
</div>
1 楼 yueguangyuan 2007-06-11  
问题简化一下,将Spring系统发布到WebLogic10 上,直接就报 log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
   log4j:WARN Please initialize the log4j system properly. 然后所有的log4j失效,请问该如何解决?

相关推荐

    weblogic中使用log4j生成日志文件实例

    2. **集成到WebLogic**: 在WebLogic中使用Log4j,我们需要将Log4j的JAR文件(如`log4j-x.x.x.jar`)添加到WebLogic的类路径中。这通常可以通过在WebLogic的`WEB-INF/lib`目录下放置Log4j JAR文件来实现。同时,确保`...

    weblogic与apache、log4J整合

    【weblogic与apache、log4J整合】 在IT领域,特别是在企业级应用部署中,将Apache HTTP Server与Oracle WebLogic Server进行整合是非常常见的实践。这种整合可以实现负载均衡、故障转移以及提供静态内容服务等功能...

    weblogic mimemappings.properties

    Weblogic中MIME的默认配置文件 文件名称:domain/config/mimemappings.properties 格式如下: js=text/javascript 个人觉得设置完后,Weblogic可能要重启一下。

    weblogic.jdbc.vendor.oracle.OracleThinBlob jar包下载

    WebLogic JDBC Vendor Oracle Thin Blob Jar包是专门为Oracle数据库在WebLogic应用服务器环境下提供Blob类型支持的驱动包。在Oracle数据库中,Blob(Binary Large Object)数据类型用于存储大量的二进制数据,如图像...

    weblogic CVE-2018-3191 exp(含weblogic-spring-jndi-10.3.6.0.jar)

    自用CVE-2018-3191 weblogic反序列化exp。

    OCS4J.properties

    2. **集群配置**:如果Coherence服务需要在多台机器上组成集群,"OCS4J.properties" 将包含集群成员的信息,如节点间的通信协议、地址、端口等,以确保数据能在集群内正确传播和同步。 3. **数据存储配置**:文件会...

    weblogic.jdbc.vendor.oracle.OracleResultSet jar包

    《深入理解WebLogic JDBC与OracleResultSet》 在Java企业级应用开发中,WebLogic服务器扮演着重要的角色,它提供了一套强大的服务,包括数据源管理、事务处理、集群支持等。其中,WebLogic的JDBC模块是连接数据库的...

    Tomcate移植到webLogic问题及解决方法

    本文将以天津银监会公文项目的实际案例为基础,详细探讨在将基于Tomcat的应用程序移植到WebLogic 10g的过程中可能遇到的问题及其解决方案。 #### Hibernate3与WebLogic冲突 **问题描述:** 当将包含Hibernate3...

    weblogic Weblogic WLS组件漏洞处置 补丁10.3.6.0.0升级10.3.6.0.12

    4. **安装补丁**:遵循Oracle提供的指南,将补丁应用到WebLogic实例上。 5. **验证**:安装后,使用测试工具进行验证,确认补丁已成功安装并解决了漏洞。 6. **更新配置**:可能需要更新WebLogic的配置文件,以确保...

    weblogic spring jndi配置

    NULL 博文链接:https://zzy603.iteye.com/blog/1039826

    day2013-0110-webLogic配置和集群(赵强).zip

    4. 故障检测与恢复:当集群中的某个服务器出现故障时,运行在其上的应用会自动迁移到其他健康的服务器上,保证服务连续性。 三、WebLogic高级特性 1. JMS(Java Message Service):WebLogic支持JMS服务,可用于...

    struts2的struts.properties配置文件详解

    Struts2的Struts.properties配置文件详解 Struts2是一个基于MVC模式的Web应用程序框架,它提供了一个名为Struts.properties的配置文件,该文件用于配置Struts2的各种参数和设置。下面将对Struts.properties配置文件...

    Weblogic-OPatch-13.9.4.2.5

    WebLogic Server是Oracle公司的一款企业级Java应用服务器,它提供了用于构建、部署和管理企业级Java应用程序的全面平台。在WebLogic Server的运营维护中,OPatch是一个关键工具,用于安装、更新和卸载Oracle产品中的...

    weblogic access.log 分析

    weblogic 分析一批 access.log,生成csv 分析结果

    log4j配置[收集].pdf

    - 解决方法:检查并确保`commons-logging.properties`中的配置正确无误,且Log4j类库已正确加入到项目中。 4. **配置选项** - 在`commons-logging.properties`文件中,提供了多种日志实现方式供选择,包括但不...

    spring获取weblogic jndi数据源的两种方式

    ### Spring 获取 WebLogic JNDI 数据源的两种方式 在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得...

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    4. **异常处理**:在转换过程中,如果出现任何异常,直接返回原始对象 `in`,以确保程序的健壮性。 #### 四、总结 通过上述方法,我们可以有效地解决 WebLogic 环境下 Oracle CLOB 类型转换的问题。这种方法不仅...

    Spring 2_5_x and WebLogic Server 10_3 Integration.mht

    Spring 2.5.x and WebLogic Server 10.3 Integration Over two years ago, we started the integration the Springframework 1.2.x with WebLogic Server 9.2. Last year, we updated the integration with Spring ...

    weblogic12.2.1.0百度网盘.txt

    根据提供的文件信息,我们可以推断出该文件主要涉及的是WebLogic 12.2.1.0版本在Linux 64位系统上的相关内容。以下是对这些知识点的详细展开: ### WebLogic 12.2.1.0简介 WebLogic Server 是一款中间件产品,由...

    Oracle Weblogic 10.X、11.X、12.X各个版本对应的系统、JDK、数据库版本

    接下来,WebLogic Server 11g(11.1.x)在操作系统支持上与10gR3类似,但对JDK的要求有所提升,一般建议使用JDK 1.6或1.7。在数据库兼容性方面,11g加强了与Oracle数据库11g的配合,同时也继续支持10g和其他主流...

Global site tag (gtag.js) - Google Analytics