Java 类加载器设置不适用于Websphere 8

Java 类加载器设置不适用于Websphere 8,java,hibernate,websphere,classloader,websphere-8,Java,Hibernate,Websphere,Classloader,Websphere 8,我有IBMWebSphere8.5.5.10。hibernate-jpa-2.0-api-1.0.0.Final.jar是默认的jar。但是,我想使用更新的版本->hibernate-jpa-2。1-api-1.0.0.Final.jar。 我设置了“首先使用本地类装入器装入的类(最后使用父类装入器)”和“应用程序的单个类装入器”。尽管如此,我还是得到了以下错误: Caused by: java.lang.NoSuchMethodError: javax/persistence/Table.in

我有IBMWebSphere8.5.5.10。hibernate-jpa-2.0-api-1.0.0.Final.jar是默认的jar。但是,我想使用更新的版本->hibernate-jpa-2。1-api-1.0.0.Final.jar。 我设置了“首先使用本地类装入器装入的类(最后使用父类装入器)”和“应用程序的单个类装入器”。尽管如此,我还是得到了以下错误:

Caused by: java.lang.NoSuchMethodError: javax/persistence/Table.indexes()[Ljavax/persistence/Index;
...
Delegation Mode: PARENT_FIRST).
at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:973) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
...
看起来发生此错误是因为先加载了旧的/父级的jar。也。请注意,尽管我定义了不同的委托模式,但委托模式首先是PARENT_。我多次检查我的类加载器定义,重新启动应用程序甚至服务器,并且始终保持不变:(


有人能帮忙吗?

这已经在几篇文章中讨论过了,请检查。你不能以容器管理的方式使用JPA 2.1和was 8.5.5.x,因为它只支持2.0。你要么升级到was 9.0,切换到WebSphere Liberty,要么以应用程序管理的方式使用JPA。

那“委派模式”在哪里字符串来自?它通常不在这样的堆栈跟踪中…您正在转储ClassLoader.toString()吗对于那个类或类似的东西?不,我没有转储或任何类似的东西。Websphere打印那个,好吧……你能在异常和消息的那个点之间粘贴东西吗?它非常适合异常消息的那个点,除非JDK格式化有点奇怪(或者Hibernate自己格式化).原因:java.lang.NoSuchMethodError:javax/persistence/Table.indexes()[Ljavax/persistence/Index;(由org.eclipse.osgi.internal.baseadapter从文件:/C:/IBM/WebSphere/AppServer/plugins/javax.j2ee.persistence.jar加载)。DefaultClassLoader@acd6f9c9)从类org.hibernate.cfg.annotations.EntityBinder调用(从…com.ibm.ws.classloader加载。CompoundClassLoader@c11559f8[war:early Returnation/early Returnation.war]本地类路径:…父级:com.ibm.ws.classloader。CompoundClassLoader@7567bcff[PL][app:提前还款]委托方式:家长优先).at org.hibernate…@Ivan如果您能在问题中包含完整的堆栈跟踪,那将非常有用(很难在注释中读取堆栈跟踪)