我的一次weblogic 8升级到weblogic9遇到的问题. 博客分类: Java WeblogicJSPJDBCMicrosoftEJB
程序员文章站
2024-03-22 13:08:10
...
1、web应用的乱码问题。
原来的基于weblogic8的应用,后来部署到weblogic 9 上面,所有的web应用都能正常部署,而且不需要经过太多修改,就是有一个应用出现乱码,原因是我直接在JSP文件中写汉字,而没有使用国际化。后来将weblogic.xml配置成如下方式解决了该问题:
2、jsp的相对路径问题
jsp的前面有如下所示声明代码:
如果在weblogic 8 中,即使该相对当前jsp的文件不存在,也就是说上面的路径有问题,也不会报任何错误。
而在9.2上部署则不允许通过。
3、EJB 部署问题
这个实际与webloigc的版本无关,EJB使用了JNI调用一个dll,而部署好以后,当访问的时候老是报如下错误:
搞的我百思不得其解,而这个错误只有发布到服务器上才出现如上错误,而本地没有任何问题,后在服务器建立一个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出现如下问题:
原因不清楚,也懒的找,后来改用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则根本跑不动.
原来的基于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则根本跑不动.