weblogic+hibernate 运行异常

       本人一个SSH的项目,在tomcat上部署之后运行没有任何问题,但是部署到weblogic上以后就会出现以下问题:

<action name="toShowGlyInfo" class="glyManageAction" method="showAllInfo">
     <result name="listpage">/backmanage/glymanage/glyInfoList.jsp</result>
</action>
        
<action name="toAddGlyInfo" class="glyManageAction" method="toGlyInfoAdd">
     <result name="returnPage">/backmanage/glymanage/glyInfoAdd.jsp</result>
</action>

      访问"toShowGlyInfo"这个action会报"http 500内部服务器错误",没有其它提示;而访问"toAddGlyInfo"这个action则没有任何问题。后来发现这两个action所指向的方法有如下不同:第一个action指向的方法利用hibernate的session对象访问了数据库执行了查询,而第二个action指向的方法则没有与数据库进行交互,只是进行了一个页面的跳转。

        System.out.println("dao4444");
        Query queryCount = session.createQuery(sqlCount);
       System.out.println("dao444411111");

      如上图,"dao4444"可以正常打印,而"dao444411111"没有打印出来,也没有任何异常或者提示信息。
      后来从网上查找可能的原因为:WebLogic与hibernate3的antlr.jar包冲突。在hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误。这样weblogic就会中止服务。

       解决方法如下:

       1、拷贝Hibernate3里带的包antlr-2.7.6.jar拷贝到${WL_HOME}/server/lib下

       2、修改startWebLogic.sh :在CLASSPATH之前加一句:PRE_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.6.jar"

在CLASSPATH之后加一句:CLASSPATH="${PRE_CLASSPATH}:${CLASSPATH}"
       重启weblogic问题解决。

 

 

posted @ 2013-01-05 13:28  雨心竹  阅读(832)  评论(0编辑  收藏  举报