How to load APR Connector (Native) in JBoss 7
Asked Answered
W

2

2

I want to use Atmosphere XMPP but i need to load native connector APR. I am not very familiar as of yet with JBoss 7 so i was wondering if anyone knows how to do this? WIndows x64 or Linux x64 environment. Doesn't matter. Thanks

Wingfooted answered 8/9, 2011 at 3:51 Comment(0)
H
4

Assuming Linux x64 here. I am using Ubuntu 11.04 x64.

  1. Download JBoss7 distribution and unzip it to a suitable directory ( from here I am assuming that you have it in your '/home/myname/tools/jboss701/' folder.
  2. Start it using /jboss701/bin/standalone.sh and verify that it started properly ( check localhost:8080 url). Close the jboss for now.

  3. Download the native libraries from here http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-9.html . I have downloaded this one jboss-native-2.0.9-linux2-x64-ssl.tar.gz

  4. Unpack it to the '/home/myname/tools/jboss701/' folder. You should see the contents of the archive in '/home/myname/tools/jboss701/bin' folder. Also, verify that you have 'native' folder under the '/home/myname/tools/jboss701/bin'

  5. IMPORTANT: unfortunately, it doesn't work out of the box. You must make the following change: add the

JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/home/myname/tools/jboss701/bin/native:$PATH"

string to your 'standalone.conf' file.

Start JBoss with the 'standalone.sh' script. Verify that you have the following line in the console during the JBoss startup: 'org.apache.coyote.http11.Http11AprProtocol'. If you see 'org.apache.coyote.http11.Http11AprProtocol' instead of 'org.apache.coyote.http11.Http11Protocol' then everything is working as expected.

Hydrosol answered 9/9, 2011 at 15:19 Comment(2)
Can you specify, which WAR file are you trying to deploy? I want to try deploying it in my JBoss.Hydrosol
I got it working on jboss 5.1.0 with your instructions. The process was similar :) but when I configured jboss for HTTPS, the APR connector started throwing error 12:40:25,751 ERROR [Http11AprProtocol] Error initializing endpoint java.lang.Exception: No Certificate file specified or invalid file format at org.apache.tomcat.jni.SSLContext.setCertificate(Native Method) Does one need to specify certificate for APR connector as well? If yes, how?Bronze
W
1

Thanks man, i got it working. I do see these lines now in my startup script. `15:13:09,687 INFO [org.apache.catalina.core.AprLifecycleListener] (MSC service thread 1-7) An older version 1.1.20 of the Apache Tomcat Native li brary is installed, while Tomcat recommends version greater then 1.1.21

15:13:11,110 INFO [org.apache.coyote.http11.Http11AprProtocol] (MSC service thread 1-3) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080` Atmosphere unforunately, is still throwing the same error.

java.lang.IllegalStateException: JBoss failed to detect this is a Comet application because the APR Connector is not enabled. Make sure atmosphere-compat-jboss.jar is not under your WEB-INF/lib and there is no context.xml under WEB-INF org.atmosphere.container.JBossWebCometSupport.<clinit>(JBossWebCometSupport.java:66) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) org.atmosphere.cpr.DefaultCometSupportResolver.newCometSupport(DefaultCometSupportResolver.java:178) org.atmosphere.cpr.DefaultCometSupportResolver.resolveWebSocket(DefaultCometSupportResolver.java:223) org.atmosphere.cpr.DefaultCometSupportResolver.resolve(DefaultCometSupportResolver.java:217) org.atmosphere.cpr.AtmosphereServlet.autoDetectContainer(AtmosphereServlet.java:900) org.atmosphere.cpr.AtmosphereServlet.init(AtmosphereServlet.java:530) org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765) org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)

I've set everything up as in the demos. too

Wingfooted answered 10/9, 2011 at 20:34 Comment(1)
Please check #9240420Puccoon

© 2022 - 2024 — McMap. All rights reserved.