博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH由WAS/Tomcat/Weblogic迁移到JBOSS
阅读量:6209 次
发布时间:2019-06-21

本文共 1686 字,大约阅读时间需要 5 分钟。

又是一个凌晨,又一次搞项目在新的中间件上的可部署性验证。。。

原来将项目部署到was7上,花了三个晚上到凌晨1点多的时间,总结出了只要将common-logging和wodenxx.jar两个jar包放到was7的java/lib/ext目录下,即可解决所有问题。今天又花了一晚上的时间,总结出如下几点经验(部分摘录自网上):

1、Hibernate不兼容

     由于项目使用的是hibernate3.6.10Final,而jboss eap 5.1.2使用的hibernate为3.3,所以项目中如果存在有关于hibernate的相关jar包,会有冲突。具体引起冲突的jar包为hibernate.annotations.jar,在这里不解决为什么会有冲突了,有兴趣的可以尝试将新版本的hibernate.annotations.jar放到项目的web-inf/lib下,启动后看看和原来的日志信息有什么区别,再看看这个问题,如果不用删除所有web-inf/lib下的jar包的解决方案的话,有没有其他的解决方案?

   结论:

    解决方案1:删除WEB-INF/lib下的所有跟hibernate相关的jar包(如果WEB-INF/lib下的所有包都正常,那么为了保证项目在其他中间件上部署时正常,请直接看2、类加载的问题吧,用这个解决方案会更省事!)

    解决方案2:升级为hibernate4,但是要考虑程序也要升级

 

2、类加载的问题

如果项目启动时报类似以下的错误:

java.lang.LinkageError: loader constraint violation: when resolving interface method "org.hibernate.engine.SessionFactoryImplementor.getTransactionManager()Ljavax/transaction/TransactionManager;" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, org/springframework/orm/hibernate3/SessionFactoryUtils, and the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) for resolved class, org/hibernate/engine/SessionFactoryImplementor, have different Class objects for the type javax/transaction/TransactionManager used in the signature

这个问题耗费了我很长一段时间,查阅了很多论坛和技术资料,也用了很多的解决办法,如把Jar包替换掉,查找配置文件……。最后在 中找到解决方法。

最终的方案就是在项目的WEB-INF下面添加了一个叫jboss-web.xml的文件,内容如下:

<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN"   

"">  
<jboss-web>  
<class-loading java2ClassLoadingCompliance='true'>  
       <loader-repository>  
           com.example:archive=unique-archive-name   
           <loader-repository-config>  
               java2ParentDelegaton=true  
           </loader-repository-config>  
       </loader-repository>  
  </class-loading>  
</jboss-web>

 

可以解决问题。

转载地址:http://vsbja.baihongyu.com/

你可能感兴趣的文章
[Sqlite]--&gt;嵌入式数据库事务理解以及实例操作
查看>>
浏览器假死
查看>>
Android之——ContentResolver查询的三种方式
查看>>
第二十一篇:基于WDM模型的AVStream驱动架构研究...
查看>>
selenium测试(Java)--上传文件(十五)
查看>>
Android开发-状态栏着色原理和API版本号兼容处理
查看>>
set statistics profile on实例
查看>>
各种数据库的锁表和解锁操作
查看>>
读懂diff【转】
查看>>
服务注册与发现
查看>>
jQuery EasyUI 数据网格 - 条件设置行背景颜色
查看>>
socket阻塞与非阻塞,同步与异步、I/O模型
查看>>
第三百六十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的bool组合查询...
查看>>
MySQL(二)之服务管理与配置文件修改和连接MySQL
查看>>
ARCH模型
查看>>
关于JSONP以及跨域相关
查看>>
用TCP穿透NAT(TCP打洞)的实现
查看>>
软件工程本质性工作的四大难题--没有银弹
查看>>
AngularJS--及其他js框架对比
查看>>
mysql索引总结(2)-MySQL聚簇索引和非聚簇索引
查看>>