当前位置: 代码迷 >> Web前端 >> weblogic+aix解决办法汇总
  详细解决方案

weblogic+aix解决办法汇总

热度:86   发布时间:2012-12-28 10:29:05.0
weblogic+aix解决方法汇总
1.对于一些复杂的jstl,weblogic无法解析,必须三元表达式,必须得每一个部分加上括号来制定运算的优先级;
${(btnet.upper_net_code==null)?((param.currentNetCode==null)?"":(param.currentNetCode)):(btnet.upper_net_code)}


2.优先加载应用程序的jar包
\WEB-INF\weblogic.xml

<weblogic-web-app>
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes> 
  </container-descriptor>
</weblogic-web-app>


3.include的时候,编码的问题:
BudgetProcessSelectItem.jsp是utf-8格式的编码,
直接在一个空的jsp文件夹下面写这样的代码是可运行的,不会产生乱码:
<%@ include file="/budget/interfaces/BudgetProcessSelectItem.jsp" %>

但是在weblogic下面就会出现乱码,必须在引用的页面指定编码才能解决这个问题:

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="/budget/interfaces/BudgetProcessSelectItem.jsp" %>


4.jar包的冲突问题:
xml包的冲突,由于在weblogic下面一句有相关的类:
需要在v10.1下面删除的jar包有:
dom.jar
sax.jar
xml-apis.jar
需要添加的jar包有:
xercesImpl.jar
xalan.jar
serializer.jar


5.在配置hibernate的时候,不要指定这个属性:hibernate.query.factory_class

6.获取文件的路径问题:
//        String bytter_keyPath=config.getServletContext().getRealPath("/")+"WEB-INF/classes/license.lic";
        //上面这种方式在aix下面是存在问题的,找不到路径的。在aix下面,上面的方法获取得到的路径是:/v10cpWEB-INFO/classes....实际路径应该是/v10cp/WEB-INFO/classes....,少了一个斜杠,导致程序找不到指定的文件,通过下面的方式即可找到。
        String bytter_keyPath=Thread.currentThread().getContextClassLoader().getResource("license.lic").getFile();


7.由于项目原来的web.xml采用的是j2ee2.3,2.3对jstl的支持不是很好,改成2.4之后就可以了。

8.weblogic对web.xml的格式要求比较严格,web.xml中的属性、节点,必须按照规定的顺序,tomcat就相对宽容,只要web.xml的一个符合xml规范就可解析。
  相关解决方案