项目在Windows 7上运行正常,在Mac上部署项目时显示错误。
自由服务器,eclipse mars,
强文本 [错误] SRVE0283E:初始化上下文时捕获异常:org.springframework.beans.factory.BeanCreationException:创建名称为' jpaMapppingContext':init的调用时出错方法失败;嵌套异常是javax.persistence.PersistenceException:java.lang.LinkageError:接口itable初始化中的加载器约束违规:解析方法" com.ibm.db2.jcc.am.Connection.prepareSQLJCall(Ljava / lang / String; ILcom / IBM / DB2 / JCC / SQLJSection; LCOM / IBM / DB2 / JCC / SQLJColumnMetaData; LCOM / IBM / DB2 / JCC / SQLJColumnMetaData; ZZIIIILjava /郎/字符串; [Ljava /郎/对象;)LCOM / IBM / DB2 / JCC / SQLJCallableStatement;"当前类,com / ibm / db2 / jcc / am / Connection和类加载器(sun / misc / Launcher $ ExtClassLoader的实例)对于接口com / ibm / db2 / jcc / SQLJConnection,对于类型c / SQLJSection具有不同的Class对象; Lcom / ibm / db2 / jcc / SQLJColumnMetaData; Lcom / ibm / db2 / jcc / SQLJColumnMetaData; ZZIIIILjava / lang / String; [Ljava /郎/对象;)LCOM / IBM / DB2 / JCC / SQLJCallableStatement;用于签名 在
答案 0 :(得分:0)
根据错误消息中存在Launcher $ ExtClassLoader,看起来您已将JDBC驱动程序的副本放入Java Extension Class Loader路径(通常为JAVA_HOME / jre / lib / ext)。因此,环境可以看到来自该位置和应用程序类加载器的类,并且会导致重复的可见性,从而导致LinkageError。
极少数情况下需要使用Java Extension加载程序,但我不相信JDBC驱动程序通常在其中,所以简单地从jre / lib / ext中删除它可能是最直接的解决方案。