您的位置:首页 > 编程语言 > Java开发

Suse 系统下 Weblogic12C 安装整合部署 Hibernate + Spring ...

2012-06-06 00:00 423 查看
Suse系统下Weblogic12C安装整合部署

关于Weblogic12的安装以及部署,请参照WebLogic安装手册.pdf

由于公司客户需要,现在需要移植现成的银行系统到weblogic上部署,发现原来在tomcat上好好的系统,一到了weblogic就完全没呼吸了,弄了几天,问题解决

接下来讲解整合出现的问题

1.关于项目部署出现Servletresponsealreadyusestream,Writernotpossible

更新Myfaces包到1.2.12

步骤:删除项目中的myfaces-shared-impl-3.0.5.jar,myfaces-impl-1.2.5.jar,myfaces-api-1.2.5.jar

解压myfaces-core-assembly-1.2.12-bin.zip,获取lib目录下所有jar包,替换项目中重复的jar包。

Lib的jar包如下:

commons-beanutils-1.8.3.jar

commons-codec-1.3.jar

commons-collections-3.2.jar

commons-digester-1.8.jar

commons-discovery-0.4.jar

commons-logging-1.1.1.jar

myfaces-api-1.2.12.jar

myfaces-impl-1.2.12.jar

2.解决weblogic12与Myfaces1.2.12整合问题

如果直接把项目部署,会报错,这个错误就是weblogic对Myfaces报的错误

解决办法:

解压Weblogic12安装目录下的war,路径如下

/wlserver_12.1/common/deployable-libraries/jsf-1.2.war

进入war包里的WEB-INF,得到weblogic.xml,复制到自己的项目WEB-INF里去,和web.xml同级

weblogic.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<weblogic-web-appxmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">

<container-descriptor>

<prefer-application-packages>

<package-name>javax.faces.*</package-name>

<package-name>com.sun.faces.*</package-name>

<package-name>com.bea.faces.*</package-name>

</prefer-application-packages>

<prefer-application-resources>

<resource-name>javax.faces.*</resource-name>

<resource-name>com.sun.faces.*</resource-name>

<resource-name>com.bea.faces.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer
</resource-name>

</prefer-application-resources>

</container-descriptor>

</weblogic-web-app>


3.解决Weblogic12C下与Hibernate3的包冲突问题

项目部署正常,但是一调用hibernate查询就会报出org.hibernate.hql.ast.HqlToken异常

网上的解决办法都是基于weblogic10,所以不行,我对相关的包进行分析,发现位于modules/com.bea.core.antlr.runtime_2.7.7.0.jar与项目hibernate3需要的antlr-2.7.6.jar发生冲突

解决办法:在weblogic安装目录随意建立一个文件夹,/opt/Oracle/Middleware/test/,我这里建立了test文件夹,然后复制项目中的antlr-2.7.6.jar到刚建立的文件夹下,这样路径/opt/Oracle/Middleware/test/下就有个jar包antlr-2.7.6.jar

然后编辑${DOMAIN_HOME}/bin/startWebgoic.sh,找到CLASSPATH这行,修改添加如下:

WEB_ANTLR="/opt/Oracle/Middleware/test/antlr-2.7.6.jar"(添加行)

CLASSPATH="${WEB_ANTLR}:${SAVE_CLASSPATH}"(修改这行)

4.解决web.xml字符串匹配问题

出现spring实例化bean类找不到问题,这是由于web.xml中用了匹配符

classpath:/applicationContext*.xml

解决方法是去掉匹配符,把要纳入的xml文件全部写出来

classpath:/applicationContext-dao.xml,classpath:/applicationContext-hisdao.xml.............

5.解决标签重复引用问题

出现thepagedirectiveattribute"pageEncoding"mayonlybeusedonceper

解决办法:A页面嵌套B页面,A页面<%@pagelanguage="java"errorPage="/error.jsp"pageEncoding="GBK"contentType="text/html;charset=GBK"%>,子页面B也重复应用了pageEncoding="GBK".把子页面B的pageEncoding="GBK"删掉就行了

关于Weblogic,由于它拥有它自己一套类加载器机制,所以和许多开源项目发生冲突,而且对页面和xml文件的审核非常严谨,标签的重用,xml文件的内容.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: