Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JBoss 7.1.1 and JBoss Web Native

I'm trying to enable the JBoss Web Native libraries in JBoss 7.1.1. I have read this question and the answers and have tried the following steps to enable the native libraries in JBoss, but it didn't work so far. I'm on OS X:

  • Downloaded the macosx archive from http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-10
  • Unzipped it into the JBoss directory, so the contents of the archive are available in bin/native.
  • Updated bin/standalone.conf to include the library path: JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/path/to/jboss-as-7.1.1.Final-native/bin/native:$PATH"

Starting JBoss, I can still see the following in the log file:

[org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-1) Starting Coyote HTTP/1.1 on http-localhost-127.0.0.1-8080

instead of the expected Http11AprProtocol.

What am I missing?

like image 821
nwinkler Avatar asked Apr 19 '12 12:04

nwinkler


2 Answers

Turns out the above steps are no longer necessary for JBoss 7.1.1, as the native libraries are now bundled under modules/org/jboss/as/web/main/lib.

To enable their usage, I had to set the native attribute to true in the web subsystem in standalone.xml. For some reason it was set to false in the default configuration:

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" 
        native="true">
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
    <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
        <alias name="example.com"/>
    </virtual-server>
</subsystem>
like image 171
nwinkler Avatar answered Dec 25 '22 08:12

nwinkler


JBOSS EAP 6.0

Check if you have modules/org/jboss/as/web/main/lib in JBOSS_HOME. If not as it is in my version of JBoss EAP 6.0.

first: yum install tomcat-native.x86_64

Now your system has got tomcat native library under /usr/lib64 that is generally in the java.library.path then set native=true in subsystem web as nwinkler's suggested:

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" 
    native="true">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
    <alias name="localhost"/>
    <alias name="example.com"/>
</virtual-server>

and now restart JBOSS.

Without tomcat native libraries installed you have in log:

10:12:31,700 INFO  [org.apache.catalina.core.AprLifecycleListener] (MSC service thread 1-1) The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_37/jre/lib/amd64/server:/usr/java/jdk1.6.0_37/jre/lib/amd64:/usr/java/jdk1.6.0_37/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
10:12:32,203 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-8) Starting Coyote HTTP/1.1 on http-/127.0.0.1:8080

With tomcat native libraries installed your log writes:

10:22:56,147 INFO  [org.apache.coyote.http11.Http11AprProtocol] (MSC service thread 1-5) Starting Coyote HTTP/1.1 on http-/127.0.0.1:8080

ALTERNATIVE

1) Download native library from JBoss web sites:

wget http://downloads.jboss.org/jbossnative/2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz

2) untar

tar xvzf jboss-native-2.0.10-linux2-x64-ssl.tar.gz

3) Create a folder for your native-libraries:

 mkdir -p tomcat-native

4) Move bin/native in your new folder

 mv bin/native tomcat-native

5) Make your folder visible by java. Add this in standalone.conf or domain.conf

 JAVA_OPTS="$JAVA_OPTS -Djava.library.path=[the tomcat-native's folder path]
like image 41
Marco Battaglia Avatar answered Dec 25 '22 07:12

Marco Battaglia