Skip to end of metadata
Go to start of metadata

声明项目的类装载机制

JBOSS自带的xerces、jassist、hibernate等几乎肯定会和项目中的jar包产生冲突,必须手工配置JBOSS的类隔离机制。配置的方法是在WEB-INF下添加一个jboss-web.xml文件,其内容大致如下:

其中:archive前的内容可以根据您的喜好自由配置,:archive后面的内容请使用war包的名字,此处我测试的是sample-center.war,故配置类sample-center。

删除当前项目下的xml-apis-1.0.b2.jar

删除当前项目WEB-INF/lib下的xml-apis-1.0.b2.jar

修正VFS与Spring冲突的问题

JBOSS中自带的VFS与Spring的资源装载机制是天然冲突。Spring为了兼容VFS专门提供的VFSUtils类。VFS又没有处理自己的向上兼容问题,所以导致Spring无法兼容VFS的每个版本。而我们现在碰到的就是Spring-3.0.5与JBOSS-5.1中VFS无法兼容。

这显然不是Spring的错,所以JBOSS不得不自己提供了针对Spring的补丁包,下载位置见 http://www.jboss.org/snowdrop/downloads。必须严格的根据自己的JBOSS和Spring版本下载匹配的补丁。匹配Spring-3.0.5与JBOSS-5.1的补丁包是 jboss-spring-deployer-as5-nodeps-2.0.4.Final.zip

下载后将其中的snowdrop-vfs.jar复制到WEB-INF/lib中。

然后打开web.xml添加以下的两个参数配置:

其中的第一个参数是配置给Dorado的,第二个参数是配置给Spring的。

升级至dorado-core-7.2.4

为了兼容VFS,Dorado也不得不做出了一些代码上的调整,因此必须升级至7.2.4最新版。

 Hibernate annotation冲突问题 

解决方案:删除工程下hibernate-annotations3.4.jar及hibernate-commons-annotations3.3.jar,下载hibernate-annotation3.2.0.GA版本即可解决sessionFactory引用annotation冲突问题

 

java.lang.NoSuchMethodException

网上给出了两种解决方案,一种就是在jboss的/common/lib的路径下将hibernate-annotation文件删除掉,这个方式不知道是否会对jboss产生影响,所以没有考虑,第二种方式就是在spring的hibernate的配置中添加以下两个属性配置: 

Xml代码  收藏代码
  1. <property name="hibernate.validator.apply_to_ddl">false</property>    
  2. <property name="hibernate.validator.autoregister_listeners">false</property>   
Labels
  • No labels