环境:
weblogic10.3.5,hibernate3,GGTS(groovy/grails tools suite);
出现这问题是因为该项目是从weblogic8.1.6下移植到weblogic10.3.5;其中在tomcat中调用过;

上网百度一把:说是hibernate.query.factory_class改成这个org.hibernate.hql.classic.ClassicQueryTranslatorFactory就没有这个问题;发布到weblogic了没有问题;

但是多选删除功能无法使用;于是又百度一把:(参考这个文档http://wangzhen-1104.iteye.com/blog/221444)原因如下:

Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,通过配置hibernate.query.factory_class属性:当设置为org.hibernate.hql.ast.ASTQueryTranslatorFactory 选择Hibernate3.0的查询翻译器,可以使用批量更新和删除功能;而设置为org.hibernate.hql.classic.ClassicQueryTranslatorFactory 选择Hibernate2.x的查询翻译器时,不能批量更新和删除;

但是我代码的功能多数使用到了批量删除和更新,所以不可能去更改代码;只能选择3.0;

再继续看:“在hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antlr类库,就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。”这个项目原来是weblogic8.1.6,我查看原来的代码里,是一个weblogic.jar的,打开这个jar中,里边是antlr类库的,weblogic8.1.6的weblogic.jar也有;项目中没有antlr-2.7.7.jar所以在原来的项目中,如果放在tomcat下,有weblogic.jar的支持,使用hibernate3是没有问题的,放到weblogic8.1.6也不会有问题,因为8.1.6的weblogic.jar中也包含了antlr的相关类库;

于是我想过几个办法:(不就是没有antlr相关类库嘛)

1、直接把weblogic10.3.5的weblogic.jar直接换个8.1.6的,不成功就不说了,只能说明是个初级猿(直接说版本不对);

2、在项目中加入antlr-2.7.7.jar然后去掉含有antlr类库的weblogic.jar,也不行;(说明这个antlr是在weblogic启动时就需要加载的,而不是部署项目的时候)

因为weblogic10.3.5中没有antlr类库,所以参考文档中的第二种方法不符合我的实际情况;所以也没有参考第三情况;

百度无果,果断google之,很快http://xuejiangtao.iteye.com/blog/1195897映入我的眼帘;weblogic版本相同,果断试之,方法和前边一遍文章的最后一种方法一致,大家都这么说,我只能相信了;

3、将工程里的antlr-2.7.7.jar拷贝到weblogic的wlserver_10.3.5\server\lib文件夹下面,在domains\base_domain\bin里找到startWebLogic.cmd(注意不是domains\base_domain\里的startWeblogic.cmd这个只是调用bin下边那个startWeblogic.cmd的)文件,在set classpath 的上下分别增加了两句话,如下:
    set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.6rc1.jar 
    set CLASSPATH=%SAVE_CLASSPATH% 
    set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH% ;

linux下startWeblogic.sh:

 PRE_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.7.jar"<注意是'/',不是'\'>
 CLASSPATH="${SAVE_CLASSPATH}"
 CLASSPATH="${PRE_CLASSPATH}:${CLASSPATH}"

重新启动weblogic就没有问题了;因为我用的是ggts,直接使用上述方法修改之后,就可以在在IDE中起动了;

总结几点:

1、如果hibernate3的项目是从weblogic8.1.6项目移植到10.3.5的话,需要的只是加入antlr类库到weblogic的启动中去;这weblogic的区别可能就是有些类库需要在容器启动就加载,而tomcat相对这样的情况少些(tomcat也有启动加载一些配置);2、weblogic8.1.6到10.3.5从weblogic.jar中去掉了antlr部分,应该也是其变的更加活用,独立和加强适应性的一种体现吧,这些思想也是值得学习的;

3、“版本”果然能引起很多问题;

PS:::::::::::::::::::::::::::::::::::::::::::::如果哪里不对的地方,还请不吝指出:::::::::::::::::::::::::::::::::::::::::::::::::::

最新文章

  1. 误将文件push到Git,如何删除
  2. &quot;服务器 &#39;&#39; 上的 MSDTC 不可用。&quot;
  3. z-index总结【转载http://www.cnblogs.com/mind/archive/2012/04/01/2198995.html】
  4. 越狱Season 1-Episode 14: The Rat
  5. JSP页面批量选择&amp;全选操作&amp;选择回显
  6. 01 - 编译链接第一个wxWidgets3.0例子
  7. Android 异步加载
  8. [itint5]字符串匹配
  9. SharePoint 无法删除搜索服务应用程序
  10. Qt实现九宫图类控件
  11. 推荐net开发cad入门阅读代码片段
  12. hdu 5489(LIS最长上升子序列)
  13. 友善之臂tiny4412-1306开发板安卓系统烧写
  14. 【读书笔记】iOS-Game Kit
  15. Android手势滑动Tab
  16. 详解C#泛型(二)
  17. Javascript:10天设计一门语言
  18. 【OCP 062新题】OCP题库更新出现大量新题-9
  19. [Winform]线程间操作无效,从不是创建控件的线程访问它的几个解决方案,async和await?
  20. 优化数据页面(22)——n:n的数据关系

热门文章

  1. 【Luogu1345】周游加拿大(动态规划)
  2. 1.4 如何在main()方法之前执行输出“hello world”
  3. JVM学习笔记一:Java运行时数据区域
  4. js如何开发游戏(聊天篇)
  5. 超实用的查看磁盘的命令:lsblk
  6. Java面试宝典笔记录
  7. mybatis动态insert,update
  8. Python 中的登陆获取数据跳转页面(不含数据库)
  9. java 10 中 var关键字用法
  10. Be Better , Be Better