当前位置: 代码迷 >> Web前端 >> 小弟我的一次weblogic 8升级到weblogic9遇到的有关问题
  详细解决方案

小弟我的一次weblogic 8升级到weblogic9遇到的有关问题

热度:207   发布时间:2012-11-09 10:18:47.0
我的一次weblogic 8升级到weblogic9遇到的问题.
1、web应用的乱码问题。
原来的基于weblogic8的应用,后来部署到weblogic 9 上面,所有的web应用都能正常部署,而且不需要经过太多修改,就是有一个应用出现乱码,原因是我直接在JSP文件中写汉字,而没有使用国际化。后来将weblogic.xml配置成如下方式解决了该问题:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>  
<jsp-descriptor>    
	<jsp-param>     
 		<param-name>encoding</param-name>      
 		<param-value>GBK</param-value>  
 	</jsp-param> 
 	<jsp-param>
         <param-name>compilerSupportsEncoding</param-name>
         <param-value>true</param-value>
    </jsp-param>
  </jsp-descriptor> 
  <context-root>/james</context-root>
</weblogic-web-app>


2、jsp的相对路径问题

jsp的前面有如下所示声明代码:
<%@ include  file="include/header.jsp" %>


如果在weblogic 8 中,即使该相对当前jsp的文件不存在,也就是说上面的路径有问题,也不会报任何错误。

而在9.2上部署则不允许通过。

3、EJB 部署问题

这个实际与webloigc的版本无关,EJB使用了JNI调用一个dll,而部署好以后,当访问的时候老是报如下错误:

 java.rmi.RemoteException: EJB Exception: ; nested exception is: 
	java.lang.NoClassDefFoundError: com/jamesby/SessionBean_n66q2o_Impl
	at weblogic.ejb.container.internal.EJBRuntimeUtils.throwRemoteException(EJBRuntimeUtils.java:95)
	at weblogic.ejb.container.internal.BaseEJBObject.handleSystemException(BaseEJBObject.java:724)
	at weblogic.ejb.container.internal.BaseEJBObject.handleSystemException(BaseEJBObject.java:681)
	at weblogic.ejb.container.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:229)


搞的我百思不得其解,而这个错误只有发布到服务器上才出现如上错误,而本地没有任何问题,后在服务器建立一个Develop Mode方式的domain,后启动server报一个又一个的dll 找不到。而product mode方式不会报这个错误,因为我的系统需要通过JNI调用一个DLL,而该DLL需要访问一个C/S模式的软件的客户端的dll。而客户端我并没有安装。

我气愤地是对于Product mode weblogic竟然如此严重的错误也不报,而报什么class 找不到,害的我忙了好长时间。

4、sqlserver 2005数据库驱动问题

用微软发布1.1的驱动,Bea的Connection Pool出现如下问题:

com.microsoft.sqlserver.jdbc.SQLServerException: 服务器无法继续执行该事务。说明: 3c000005b9。   
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Lcom.microsoft.sqlserver.jdbc.SQLServerConnection;Lcom.microsoft.sqlserver.jdbc.IOBuffer;Ljava.lang.String;Lcom.microsoft.sqlserver.jdbc.StreamError;Z)V(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Lcom.microsoft.sqlserver.jdbc.SQLServerConnection;[Lcom.microsoft.sqlserver.jdbc.PacketRequestor;ILjava.lang.String;Z)Lcom.microsoft.sqlserver.jdbc.StreamPacket;(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult()Z(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Lcom.microsoft.sqlserver.jdbc.SQLServerStatement$StatementExecutionRequest;Lcom.microsoft.sqlserver.jdbc.TDSWriter;)V(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StatementExecutionRequest.executeStatement(Lcom.microsoft.sqlserver.jdbc.TDSWriter;)V(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.CancelableRequest.execute(Lcom.microsoft.sqlserver.jdbc.TDSWriter;)V(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeRequest(Lcom.microsoft.sqlserver.jdbc.ExecutableRequest;I)V(Unknown Source)   
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(Ljava.lang.String;)Ljava.sql.ResultSet;(Unknown Source)   
    at weblogic.jdbc.wrapper.Statement.executeQuery(Statement.java:412) 


原因不清楚,也懒的找,后来改用Bea的驱动,到目前为止比较正常.

5、JSP文件名大小写问题
系统部署在windows操作系统,系统的web层采用Spring MVC 并采用ResourceBundleViewResolver,urlMapping 采用SimpleUrlHandlerMapping,本来在weblogic8 上的时候如果在jamesby.properties配置为viewName.url=/WEB-INF/jsp/Abc.jsp
而实际的jsp的文件名为abc.jsp的时候,是没有任何问题的.

而在weblogic 9上则文件名必须为Abc.jsp才可以,否则报404错误.

当然unix或者linux是区分大小写肯定有这个要求的.但是windows系统的weblogic 9平台也有这个要求


以上就是我的一次升级经历,希望对大家有帮助。另外weblogic 9耗资源好高,本来PC跑weblogic8很轻松的,跑weblogic 9则根本跑不动.

1 楼 dy.f 2007-04-30  
jamesby 写道

2、jsp的相对路径问题

jsp的前面有如下所示声明代码:
<%@ include  file="include/header.jsp" %>


如果在weblogic 8 中,即使该相对当前jsp的文件不存在,也就是说上面的路径有问题,也不会报任何错误。

而在9.2上部署则不允许通过。



请问这个问题你是怎样解决的呢?
2 楼 jamesby 2007-04-30  
dy.f 写道
jamesby 写道

2、jsp的相对路径问题

jsp的前面有如下所示声明代码:
<%@ include  file="include/header.jsp" %>


如果在weblogic 8 中,即使该相对当前jsp的文件不存在,也就是说上面的路径有问题,也不会报任何错误。

而在9.2上部署则不允许通过。



请问这个问题你是怎样解决的呢?
修改JSP文件啊,以前写代码不规范,拷贝来拷贝去才有这个问题。

用这种
<%@ include  file="/WEB-INF/jsp/include/header.jsp" %>


绝对路径的方式最好,所有的JSP的头都基本一致。