背景:
目前是SpringCloud项目,前端使用Vue,之前还行,但是突然有一天启动报错了。
报错如下:
Caused by: java.lang.UnsatisfiedLinkError: could not load a native library: netty_resolver_dns_native_macos_aarch_64
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:239) ~[netty-common-4.1.82.Final.jar:4.1.82.Final]
...
...
Caused by: java.io.FileNotFoundException: META-INF/native/libnetty_resolver_dns_native_macos.jnilib
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:181)
... 63 common frames omitted
Suppressed: java.lang.UnsatisfiedLinkError: no netty_resolver_dns_native_macos in java.library.path: [/Users/shaonaiyi/Library/Java/Extensions, /Library/Java/Extensions, /Network/Library/Java/Extensions, /System/Library/Java/Extensions, /usr/lib/java, .]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2678)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1886)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:391)
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:161)
... 63 common frames omitted
Suppressed: java.lang.UnsatisfiedLinkError: no netty_resolver_dns_native_macos in java.library.path: [/Users/shaonaiyi/Library/Java/Extensions, /Library/Java/Extensions, /Network/Library/Java/Extensions, /System/Library/Java/Extensions, /usr/lib/java, .]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2678)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1886)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:425)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:417)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:383)
... 64 common frames omitted
...
...
io.netty.channel.AbstractChannel$AnnotatedSocketException: Can't assign requested address: /192.168.215.0:9004
最后经过排查,发现原因是我开启了OrbStack导致的。
当我开启OrbStack时,前端代码启动后:
VITE v4.5.2 ready in 175 ms
➜ Local: http://localhost:8001/
➜ Network: http://192.168.32.211:8001/
➜ Network: http://198.19.249.3:8001/
➜ Network: http://192.168.215.0:8001/
➜ press h to show help
如果关闭,则显示:
VITE v4.5.2 ready in 175 ms
➜ Local: http://localhost:8001/
➜ Network: http://192.168.32.211:8001/
➜ press h to show help
而且项目的报错也因为我启动OrbStack而有所改变,由此可知就是OrbStack引起的。
但现在的问题是,如果我关掉OrbStack,那么我Docker中的Redis、MySQL都没法使用了!怎么办呢?!
最后我是暂且这样解决的:
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
routes:
- id: mall-order
# uri: lb://mall-order
uri: http://127.0.0.1:9528
predicates:
- Path=/gateway/order/**
将负载均衡,直接指定成ip地址访问即可!