之前项目一直用的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),先前被误导了
还有些问题忘记了,想起再不上吧
本文记录了从Tomcat迁移到WebLogic过程中遇到的问题及解决办法,包括配置weblogic.xml、解决Jersey依赖问题、处理JSP编译错误、调整Oracle驱动等。
3752

被折叠的 条评论
为什么被折叠?



