问题
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?
回答1:
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>
回答2:
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]
来源:https://stackoverflow.com/questions/10227993/jboss-7-1-1-and-jboss-web-native