在weblogic10.3下部署Hibernate 3.6.5。好像是jar包冲突问题?该怎么解决

aninei 2011-08-09 11:21:27

环境:JPA 1.0
weblogic 10.3 hibernate 3.6.5

我在往weblogic startweblogic.cmd 加入classpath .

set COMDOMAIN_CLASSPATH=%COMDOMAIN_CLASSPATH%;%HIBERNATE_LIB%;%HIBERNATE_LIB%\hibernate3.jar;%HIBERNATE_LIB%\hibernate-jpa-2.0-api-1.0.0.Final.jar;%HIBERNATE_LIB%\slf4j-api-1.6.1.jar;%HIBERNATE_LIB%\javassist-3.12.0.GA.jar;%HIBERNATE_LIB%\javassist-3.12.0.GA.jar;%HIBERNATE_LIB%\hibernate-testing.jar;

可是在加入 javassist-3.12.0.GA.jar jar时 一直出现这个错误

<Failed to initialize the application due to error weblogic.management.DeploymentException: .
weblogic.management.DeploymentException:
at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:86)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:193)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:141)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)
at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:187)
at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
java.lang.NoSuchMethodError: getValidationMode
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:629)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory (HibernatePersistence.java:74)
at weblogic.deployment.PersistenceUnitInfoImpl.createEntityManagerFactory(PersistenceUnitInfoImpl.java:332)
at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:124)
at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:331)
at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:111)
at weblogic.deployment.EarPersistenceUnitRegistry.<init>(EarPersistenceUnitRegistry.java:52)
at weblogic.application.internal.flow.JpaFlow.prepare(JpaFlow.java:54)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:616)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:141)
。。。。。。。。。。。。

这个问题该怎么解决呢 求指点!!!!



...全文
781 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aninei 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 l_yih 的回复:]
引用 6 楼 aninei 的回复:
因为Hibernate3.6.5 是支持JPA2.0
然后weblogic10.3 是支持JPA1.0

所以会出现这个错误

然后讲weblogic版本升级到10.3.4 。 weblogic10.3.4开始是可以支持JPA2.0 只是要加patch
它本身是默认支持JPA1。0 要使用JPA2.0 就要在你的项目启动之前 启动JPA2.0 即……
[/Quote]

这个需要你在启动weblogic之前把JPA2.0 的jar手动启动。
The files required for supporting JPA 2.0 are included with a default WebLogic Server installation, but they are not enabled by default. The files are installed in the WL_HOME\modules directory. The files are:
•The javax.persistence_1.0.0.0_2-0-0 JAR file contains the JPA 2.0 libraries.
•The com.oracle.jpa2support_1.0.0.0_2-0.jar file contains the files for enabling JPA 2.0 support in WebLogic Server.
So install the patch manually by starting the files at the start of the WebLogic class path.

所以你可以在startWeblogic.cmd 里面设置JPA_CLASSPATH =JPA2.0 support jar

JPA_CLASSPATH 最好放在启动加载的path最前面。
l_yih 2011-12-26
  • 打赏
  • 举报
回复
怎么样才可以先启动JPA2.0?
麻烦楼主说明白一点,本人有些笨。。
l_yih 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 aninei 的回复:]
因为Hibernate3.6.5 是支持JPA2.0
然后weblogic10.3 是支持JPA1.0

所以会出现这个错误

然后讲weblogic版本升级到10.3.4 。 weblogic10.3.4开始是可以支持JPA2.0 只是要加patch
它本身是默认支持JPA1。0 要使用JPA2.0 就要在你的项目启动之前 启动JPA2.0 即可
[/Quote]

我的是weblogic10.3.5,调用不到jpa2.0的persistence的getPersistenceUtil()方法,怎么设置才可以让它找到这个类的方法?
l_yih 2011-12-26
  • 打赏
  • 举报
回复
我也遇到了这个问题,想问一下,怎么在weblogic.xml里面配置具体加载哪个包的顺序?
aninei 2011-10-12
  • 打赏
  • 举报
回复

我自己回答把
aninei 2011-10-12
  • 打赏
  • 举报
回复

因为Hibernate3.6.5 是支持JPA2.0
然后weblogic10.3 是支持JPA1.0

所以会出现这个错误

然后讲weblogic版本升级到10.3.4 。 weblogic10.3.4开始是可以支持JPA2.0 只是要加patch
它本身是默认支持JPA1。0 要使用JPA2.0 就要在你的项目启动之前 启动JPA2.0 即可
aninei 2011-10-12
  • 打赏
  • 举报
回复
好把 我自己回答一下呗啊
leonlee985 2011-08-18
  • 打赏
  • 举报
回复
有几种可能:
1.这个包依赖另一个包,而那个包你没有引入。
2.包的先后顺序是否正确。
你可以这样来找出问题:
1.搜一下getValidationMode这个方法来自哪个包,看你是否已经导入。
2.仔细检查下classpath的先后顺序。
aninei 2011-08-09
  • 打赏
  • 举报
回复

主要是错误是这个 java.lang.NoSuchMethodError: getValidationMode


at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:629)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory (HibernatePersistence.java:74)

求救~~~
aninei 2011-08-09
  • 打赏
  • 举报
回复
为什么木有人回答

1,237

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧