JBoss 7.1.1和JBoss Web Native

7
我正在尝试在JBoss 7.1.1中启用 JBoss Web Native libraries。我已经阅读了this问题和答案,并尝试了以下步骤来启用JBoss中的本地库,但目前还没有成功。我使用的是OS X操作系统:
  • http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-10下载了macosx存档文件。
  • 将其解压缩到JBoss目录中,以便存档文件的内容在bin/native中可用。
  • 更新bin/standalone.conf以包括库路径:JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/path/to/jboss-as-7.1.1.Final-native/bin/native:$PATH"

启动JBoss后,我仍然可以在日志文件中看到以下内容:

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

我期望的是Http11AprProtocol,但实际得到了其他结果。

我错过了什么吗?

2个回答

15

结果发现对于JBoss 7.1.1,上述步骤已不再必要,因为原生库现在被捆绑在modules/org/jboss/as/web/main/lib下。

为了启用它们的使用,我必须在standalone.xml中的web子系统中将native属性设置为true。由于某种原因,在默认配置中它被设置为false

<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

检查JBOSS_HOME中是否有modules/org/jboss/as/web/main/lib。 如果没有,就像我的版本的 JBoss EAP 6.0 那样。

首先:yum install tomcat-native.x86_64

现在,您的系统已经在 /usr/lib64 下获得了 tomcat 的本地库,该目录通常位于 java.library.path 然后按照 nwinkler 建议,在 subsystem web 中设置 native=true:

<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>

现在重新启动JBOSS。

如果没有安装Tomcat本地库,您将在日志中看到:

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

如果安装了Tomcat本地库,您的日志将会写入:

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

替代方案

1)从 JBoss 网站下载本地库:

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

2) 解压缩

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

3) 为您的本地库创建一个文件夹:

 mkdir -p tomcat-native

4) 将 bin/native 移动到您的新文件夹中

 mv bin/native tomcat-native

5)让您的文件夹可被Java识别。在standalone.conf或domain.conf中添加以下内容。

 JAVA_OPTS="$JAVA_OPTS -Djava.library.path=[the tomcat-native's folder path]

嗨,nwinkler。很抱歉出现了错误,但是这个问题被标记为jboss,并且这是谷歌搜索关键词如JBoss和Native的着陆页面之一。我正在尝试更改问题/答案。 - Marco Battaglia
@nwinkler 我认为JBoss EAP的答案适用于这里。EAP 6.0只是JBoss AS 7.1.1的一个小变化。 - dexter meyers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接