tomcat转weblogic遇到的一些问题

本文记录了从Tomcat迁移到WebLogic过程中遇到的问题及解决办法,包括配置weblogic.xml、解决Jersey依赖问题、处理JSP编译错误、调整Oracle驱动等。

之前项目一直用的tomcat(运行正常),后来要求使用weblogic;移植过程遇到了一些问题,简单记录一下。环境大致是:tomcat7,jdk7,oracle11g;weblogic12c,(问题不分先后的出现顺序)。

先在web.xml同级目录建一个名为weblogic.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app>
    <container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled> 
    </container-descriptor>
</weblogic-web-app>

遇到的一些问题:

1.

com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. :......

这里加了一个依赖:

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.19.4</version>
        </dependency>

2.

javax.servlet.ServletException: weblogic.servlet.jsp.CompilationException: Failed to compile JSP /WEB-INF/jsp/frame/perspective_content.jsp  
perspective_content.jsp:1:1: The validator class: "org.apache.taglibs.standard.tlv.JstlCoreTLV" has failed with the following exception: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory".  
<%@ page contentType="text/html; charset=utf-8...

这里参考了http://blog.youkuaiyun.com/u011030874/article/details/50605799

1.将工程/WEB-INF/lib/下的 antlr-2.7.6.jar  复制到weblogic下  /home/Oracle/Middleware/wlserver/server/lib  路径下;
2.修改weblogic的启动配置文件startWeblogic.sh(/home/Oracle/Middleware/user_projects/domains/base_domain/bin)
在CLASSPATH="${SAVE_CLASSPATH}" 下面加入以下内容:
PRE_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.6.jar:"
CLASSPATH="${PRE_CLASSPATH}${SAVE_CLASSPATH}"
3.将WEB-INF/weblogic.xml中的<prefer-web-inf-classes>true</prefer-web-inf-classes>参数修改为false(若无此文件,则不需要此步骤)

3、

getString/getNString not implemented for class oracle.jdbc.driver.T4CBlobAccessor

初步推测是oracle驱动不符合导致方法缺失,目测是调用了本地的驱动
修改Oracle\Middleware\Oracle_Home\oracle_common\common\bin\commEnv.cmd文件;

将
set PROFILE_CLASSPATH=%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar
改为:
set PROFILE_CLASSPATH=%WL_HOME%\server\lib\ojdbc6.jar;%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar

将
set WEBLOGIC_CLASSPATH=%JAVA_HOME%\lib\tools.jar;%PROFILE_CLASSPATH%;%ANT_CONTRIB%\lib\ant-contrib.jar;%CAM_NODEMANAGER_JAR_PATH%
改为:
set WEBLOGIC_CLASSPATH=%WL_HOME%\server\lib\ojdbc6.jar;%JAVA_HOME%\lib\tools.jar;%PROFILE_CLASSPATH%;%ANT_CONTRIB%\lib\ant-contrib.jar;%CAM_NODEMANAGER_JAR_PATH%
用的自己数据库里找的ojdbc6.jar,发现也没有getString这个方法;而用之前tomcat时用的ojdbc14-10.2.0.4.0.jar 有这个方法但是启动完以后,首页登录时就卡死了,之后提示无法打开数据库连接,后面重新在网上下了一个 ojdbc6.jar(http://www.java2s.com/Code/Jar/o/Downloadojdbc6jar.htm)

另外weblogic12.1.2之后好像是支持servlet3.0(我装的是12.1.3),先前被误导了

这里写图片描述
还有些问题忘记了,想起再不上吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值