• tomcat应用转到weblogic上时的问题


    昨天将一个tomcat环境下调试通过的报表demo应用发布到weblogic上做测试,结果发现好多问题。总结了一下,主要有这么几点: 
    1、使用log4j的问题。 
    tomcat应用直接发布到weblogic上出现错误:Cannot set web app root system property when WAR file is not expanded。WebLogic自身也包含对Log4j的支持,在打包部署(.war)的时候,会和Spring的org.springframework.web.util.Log4jConfigListener有冲突。解决方法之一就是把log4j的配置直接放到classpath下,log4j在web.xml下的相关配置,由于系统需要webAppRootKey这个参数,所以web.xml中需要加入: 
    <context-param> 
    <param-name>webAppRootKey</param-name> 
    <param-value>webapp.root</param-value> 
    </context-param> 
    2、struts、ibatis等开源软件的配置文件中的相对路径问题。 
    比如ibatis中的配置: 
    <sqlMap resource="../../WEB-INF/config/ibatis/ibatis-common.xml"/> 
    类似于这样的相对路径写法在tomcat下是没有任何问题的,但是weblogic是不认的,会报找不到文件。简单的解决办法就是配置文件放到classpath下。 
    3、页面默认编码问题。 
    我们都知道在页面上写类似于下面这样的代码来设置浏览器编码: 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    在tomcat下,浏览器读取该页面时会自动编码设置为unicode,但是weblogic不行,必须在web.xml中设置: 
    <mime-mapping> 
    <extension>html</extension> 
    <mime-type>text/html;charset=UTF-8</mime-type> 
    </mime-mapping> 
    4、读取当前应用的资源文件问题。 
    另外,在应用中使用IO来读取本应用中的文件时,tomcat下是没有任何问题的,但是在weblogic下会有些问题,要尽量使用ServletContext.getResourceAsStream来读取文件。

  • 相关阅读:
    redis乐观锁
    redis
    解决创建Redis容器没有conf配置文件
    redis缓存配置
    Docker架构
    Flask获取数据的一些方法
    Nginx正向代理、反向代理与负载均衡
    Sanic
    Dockerfile详解
    Centos7上安装docker
  • 原文地址:https://www.cnblogs.com/hackermi/p/3154538.html
Copyright © 2020-2023  润新知