Skip to content

raw socket library not loading under meecrowave/tomcat #5

Description

@terefang

meecrowave.version = 1.2.1
ninio.version = 3.0.21
java -version = Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
uname-a = Linux qay1 4.10.0-40-generic #44~16.04.1-Ubuntu SMP Thu Nov 9 15:37:44 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
lsb_release-a = Distributor ID: LinuxMint / Description: Linux Mint 18.3 Sylvia / Release: 18.3 / Codename: sylvia

hello i wanted to test ninio-ping in an app-server.

the code was

@Dependent
@ApplicationPath("api")
public class HelloApplication extends Application
{
    public static final Logger LOG = LogManager.getLogger("APP");

    Ninio ninio = Ninio.create();

    @PostConstruct
    public void postConstruct()
    {
        final Lock<Double, IOException> lock = new Lock();
        byte[] pingHost = { 10,3,2,1 };

        PingConnecter client = PingTimeout.wrap(1d, ninio.create(PingClient.builder()));

        try
        {
            client.connect(new PingConnection()
            {
                @Override
                public void failed(IOException ioe) {
                    lock.fail(ioe);
                }
                @Override
                public void connected(Address address) {
                }
                @Override
                public void closed() {
                }
            });
            client.ping(pingHost, new PingReceiver() {
                @Override
                public void received(double time) {
                    lock.set(time);
                }
                @Override
                public void failed(IOException ioe) {
                    lock.fail(ioe);
                }
            });

            System.out.println(lock.waitFor());
        }
        catch (final Exception xe)
        {
            LOG.error(xe);
        }

        LOG.info("app -- constructed.");
    }
}

here is the error output:

[14:27:47.543][INFO ][           main][oyote.http11.Http11NioProtocol] Initializing ProtocolHandler ["http-nio-8080"]
[14:27:47.549][INFO ][           main][omcat.util.net.NioSelectorPool] Using a shared selector for servlet write/read
[14:27:47.550][INFO ][           main][.catalina.core.StandardService] Starting service [Tomcat]
[14:27:47.550][INFO ][           main][e.catalina.core.StandardEngine] Starting Servlet Engine: Apache Tomcat/9.0.5
[14:27:47.554][INFO ][           main][oyote.http11.Http11NioProtocol] Starting ProtocolHandler ["http-nio-8080"]
[14:27:47.563][INFO ][           main][g.apache.meecrowave.Meecrowave] --------------- http://localhost:8080
[14:27:47.685][INFO ][           main][ans.OWBTomcatWebScannerService] OpenWebBeans scanning:
[14:27:47.687][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/config-1.2.1.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/cxf-integration-cdi-3.2.2.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/meecrowave-core-1.2.1.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/mucro-ping-1.0.0.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/ninio-core-3.0.21.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/ninio-ping-3.0.21.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/ninio-snmp-3.0.21.jar
[14:27:47.688][INFO ][           main][ans.OWBTomcatWebScannerService]     ${base}/lib/ninio-util-3.0.21.jar
[14:27:47.765][INFO ][           main][ifecycle.WebContainerLifecycle] OpenWebBeans Container is starting...
[14:27:47.878][INFO ][           main][.webbeans.config.BeansDeployer] All injection points were validated successfully.
[14:27:47.929][ERROR][           main][.WebBeansConfigurationListener] An error occurred while starting application context path : []
[14:27:47.929][ERROR][           main][he.catalina.core.ContainerBase] ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component 
...
Caused by: java.lang.UnsatisfiedLinkError: Library could not be loaded: No such file or directory
	at com.davfx.ninio.util.LibraryLoader.load(LibraryLoader.java:66) ~[ninio-util-3.0.21.jar:?]
	at com.davfx.ninio.core.NativeRawSocket.<clinit>(NativeRawSocket.java:27) ~[ninio-core-3.0.21.jar:?]
	at com.davfx.ninio.core.RawSocket.connect(RawSocket.java:83) ~[ninio-core-3.0.21.jar:?]
	at com.davfx.ninio.ping.PingClient.connect(PingClient.java:80) ~[ninio-ping-3.0.21.jar:?]
	at com.davfx.ninio.ping.PingTimeout$1.connect(PingTimeout.java:22) ~[ninio-ping-3.0.21.jar:?]
	at HelloApplication.postConstruct(HelloApplication.java:32) ~[mucro-ping-1.0.0.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
	at org.apache.webbeans.intercept.LifecycleInterceptorInvocationContext.proceed(LifecycleInterceptorInvocationContext.java:103) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.portable.InjectionTargetImpl.postConstruct(InjectionTargetImpl.java:320) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:127) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.component.ManagedBean.create(ManagedBean.java:66) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:68) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:125) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:813) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.container.InjectableBeanManager.getReference(InjectableBeanManager.java:180) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.cxf.cdi.JAXRSCdiResourceExtension.load(JAXRSCdiResourceExtension.java:179) ~[cxf-integration-cdi-3.2.2.jar:3.2.2]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151]
	at org.apache.webbeans.event.ObserverMethodImpl.invoke(ObserverMethodImpl.java:404) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.event.ContainerEventObserverMethodImpl.invoke(ContainerEventObserverMethodImpl.java:85) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:365) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.event.NotificationManager.invokeObserverMethod(NotificationManager.java:832) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:732) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:495) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.container.BeanManagerImpl.fireLifecycleEvent(BeanManagerImpl.java:490) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.config.BeansDeployer.fireAfterDeploymentValidationEvent(BeansDeployer.java:870) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:346) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication(AbstractLifeCycle.java:137) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:103) ~[openwebbeans-impl-2.0.4.jar:2.0.4]
	at org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:98) ~[openwebbeans-web-2.0.4.jar:2.0.4]
	at org.apache.webbeans.servlet.WebBeansConfigurationListener.contextInitialized(WebBeansConfigurationListener.java:85) ~[openwebbeans-web-2.0.4.jar:2.0.4]
	at org.apache.meecrowave.openwebbeans.OWBAutoSetup$EagerBootListener.doContextInitialized(OWBAutoSetup.java:80) ~[meecrowave-core-1.2.1.jar:1.2.1]
	at org.apache.meecrowave.openwebbeans.OWBAutoSetup$EagerBootListener.access$100(OWBAutoSetup.java:61) ~[meecrowave-core-1.2.1.jar:1.2.1]
	at org.apache.meecrowave.openwebbeans.OWBAutoSetup.onStartup(OWBAutoSetup.java:57) ~[meecrowave-core-1.2.1.jar:1.2.1]
	at org.apache.meecrowave.Meecrowave.lambda$deployWebapp$10(Meecrowave.java:277) ~[meecrowave-core-1.2.1.jar:1.2.1]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5088) ~[tomcat-catalina-9.0.5.jar:9.0.5]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-catalina-9.0.5.jar:9.0.5]
	... 7 more
[14:27:47.933][INFO ][           main][oyote.http11.Http11NioProtocol] Pausing ProtocolHandler ["http-nio-8080"]
[14:27:47.985][INFO ][           main][.catalina.core.StandardService] Stopping service [Tomcat]
[14:27:47.988][INFO ][           main][oyote.http11.Http11NioProtocol] Stopping ProtocolHandler ["http-nio-8080"]
[14:27:47.992][INFO ][           main][oyote.http11.Http11NioProtocol] Destroying ProtocolHandler ["http-nio-8080"]

PS: using it from a simple main method works

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions