jnr / jnr-unixsocket

UNIX domain sockets (AF_UNIX) for Java
Apache License 2.0
278 stars 75 forks source link

application run failed while built with native-image #104

Open imgoby opened 6 months ago

imgoby commented 6 months ago

version:

com.github.jnr jnr-unixsocket 0.38.22
java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
    at jnr.ffi.provider.InvalidRuntime.newLoadError(InvalidRuntime.java:102)
    at jnr.ffi.provider.InvalidRuntime.findType(InvalidRuntime.java:43)
    at jnr.ffi.Struct$NumberField.<init>(Struct.java:978)
    at jnr.ffi.Struct$Unsigned16.<init>(Struct.java:1346)
    at jnr.unixsocket.SockAddrUnix$DefaultSockAddrUnix.<init>(SockAddrUnix.java:209)
    at jnr.unixsocket.SockAddrUnix.create(SockAddrUnix.java:174)
    at jnr.unixsocket.UnixSocketAddress.<init>(UnixSocketAddress.java:47)
    at com.hcll.sail.base.tools.LicenseUtil.getDockerId(LicenseUtil.java:158)
    at com.hcll.sail.base.tools.LicenseUtil.checkLicense(LicenseUtil.java:225)
    at com.hcll.sail.sink.SinkApplication.checkLicense(SinkApplication.java:227)
    at com.hcll.sail.sink.SinkApplication.run(SinkApplication.java:158)
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:769)
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:753)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150)
    at com.hcll.sail.sink.SinkApplication.main(SinkApplication.java:130)
Caused by: java.lang.UnsatisfiedLinkError: could not get native definition for type `POINTER`, original error message follows: null
    at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:253)
    at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
    at com.kenai.jffi.Type.resolveSize(Type.java:155)
    at com.kenai.jffi.Type.size(Type.java:138)
    at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:198)
    at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:77)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:49)
    at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:73)
    at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:60)
    at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29)
    at java.base@17.0.5/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base@17.0.5/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
    at java.base@17.0.5/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
    at java.base@17.0.5/java.lang.Class.newInstance(DynamicHub.java:645)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57)
    at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
    at jnr.ffi.Runtime$SingletonHolder.<clinit>(Runtime.java:109)
    at jnr.ffi.Runtime.getSystemRuntime(Runtime.java:70)
    at jnr.unixsocket.SockAddrUnix.<init>(SockAddrUnix.java:46)
    at jnr.unixsocket.SockAddrUnix$DefaultSockAddrUnix.<init>(SockAddrUnix.java:208)
    ... 11 common frames omitted
imgoby commented 6 months ago

change to another dependency will be ok:

      <dependency>
                <groupId>com.kohlschutter.junixsocket</groupId>
                <artifactId>junixsocket-core</artifactId>
                <version>2.9.0</version>
                <type>pom</type>
            </dependency>