项目中使用到了Hibernate 3.6,在PO类中使用了@OneToMany注解
在Tomcat上部署运行正常,但是部署到webSphere7上出现问题,报错如下:
Caused by: java.lang.NoSuchMethodError: javax/persistence/OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1912)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
... 118 more
这是未能正常加载hibernate-jpa-2.0-api-1.0.0.Final.jar
这个jar导致的
因为WebSphere7的类加载路径用有同样的类实现导致jar包冲突,且加载在本包内部jar包之前,所以可以将hibernate-jpa-2.0-api-1.0.0.Final.jar
复制到WAS7_FOLDER\AppServer\java\jre\lib\ext下,并重启was即可解决该问题
注意:不推荐删掉was中的jar包,可能导致其他问题!