java 1.6 的 ie 项目 终于升级 1.8 chrome 了。
搞了半天升级 spring hibernate 等相关配置,终于把项目跑起来了。
可是回到家,用 mac 电脑却跑不起来。
报
java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;
又远程回公司的 win 电脑 跑起来没问题。
就邪门了 和底层 jdk 有关么?
mac 是 m1 芯片 用的 zulu openjdk8
搜这个报错 说是升级 hibernate 就好了
可是我就是升级到 5.6.9 了
且 win 下是好的 mac 下就跑不起来 。
愁唉。
1
xuhaoyangx 2022-12-09 20:08:10 +08:00
jdk 1.8 直接用 Intel 的,转译使用
|
2
helee9199 OP |
3
jorneyr 2022-12-09 20:58:41 +08:00
有些类在 Windows 上 JDK8 有,在 Mac zulu JDK8 没有,我也遇到过,例如 javafx.util.Pair 这个类没有。
|
5
Hurriance 2022-12-09 23:11:20 +08:00 via iPhone
用 Oracle 的 jdk1.8 也不行吗
|
6
night98 2022-12-10 03:03:52 +08:00
用 oracle 的 jdk17 ????? jdk9 干掉了一堆类,jdk17 就更别说了
|
7
kran 2022-12-10 05:44:48 +08:00 via Android
尝试在无错环境看一下入参的实际类型
|
8
zeni123 2022-12-10 07:33:17 +08:00 via iPhone
NoSuchMethodError 看看这个 SessionFactoryImplementor 类有没有 getProperties()Ljava/util/Map;这个方法
|
9
cnzjl 2022-12-10 08:27:52 +08:00
你 debug 图中的类和异常信息的类不一致呀
|
10
sinibazhang 2022-12-10 10:37:22 +08:00
@jorneyr zulu jdk 应该是有 javafx 版本的
|
11
lei2j 2022-12-10 11:57:07 +08:00 via Android
debug 图与描述不太相关啊,不是应该看 SessionFactoryImplementor 有没有 getProperties 方法吗,项目中搜索这个类及对应方法再看看有没有
|
12
retrocode 2022-12-10 11:59:55 +08:00
恭喜升级, 要不考虑更进一步升个 JDK11?
|
13
hqs0417 2022-12-10 14:04:42 +08:00
这种问题一般是 jar 包冲突,也就是一个类在存在多个 jar 。
类加载器在 windows ,linux ,mac 由于文件系统不同,加载顺序不同,可能在 linux 下可以工作,但是在 mac 下无法正常工作。 排查思路,找 org.hibernate.engine.spi.SessionFactoryImplementor 是否存在多个 jar 中,应该一个有该方法一个没有。排掉哪个 |
14
Macolor21 2022-12-12 08:47:05 +08:00 via iPhone
NoXxxFound 一般是依赖冲突,window 没更新可能是依赖没更新,mvn clean 再 package 试下。
或者代理对象被序列化,反序列化之后出现的问题 |