如何在JBoss 7中加载APR连接器(Native)

时间:2011-09-08 03:51:08

标签: jboss comet jboss7.x atmosphere

我想使用Atmosphere XMPP,但我需要加载本机连接器APR。我对JBoss 7还不是很熟悉所以我想知道是否有人知道如何做到这一点?使用x64或Linux x64环境。无所谓。感谢

2 个答案:

答案 0 :(得分:4)

在这里假设Linux x64。我使用的是Ubuntu 11.04 x64。

  1. 下载JBoss7发行版并将其解压缩到一个合适的目录(从这里我假设您已将它放在'/ home / myname / tools / jboss701 /'文件夹中。
  2. 使用/jboss701/bin/standalone.sh启动它并验证它是否正常启动(请检查localhost:8080 url)。暂时关闭jboss。

  3. 从此处下载本地库http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-9.html。我已经下载了这个jboss-native-2.0.9-linux2-x64-ssl.tar.gz

  4. 将其解压缩到'/ home / myname / tools / jboss701 /'文件夹。您应该在'/ home / myname / tools / jboss701 / bin'文件夹中看到存档的内容。另外,验证'/ home / myname / tools / jboss701 / bin'下的'native'文件夹

  5. 重要提示:遗憾的是,它无法开箱即用。您必须进行以下更改:添加

  6.   

    JAVA_OPTS =“$ JAVA_OPTS   -Djava.library.path = /家庭/ MYNAME /工具/ jboss701 /斌/本地:$ PATH“

    字符串到'standalone.conf'文件。

    使用'standalone.sh'脚本启动JBoss。在JBoss启动期间验证控制台中是否有以下行:'org.apache.coyote.http11.Http11AprProtocol'。如果您看到'org.apache.coyote.http11.Http11AprProtocol'而不是'org.apache.coyote.http11.Http11Protocol',那么一切都按预期工作。

答案 1 :(得分:1)

谢谢你,我让它工作了。我确实在我的启动脚本中看到了这些行。 `15:13:09,687 INFO [org.apache.catalina.core.AprLifecycleListener](MSC服务线程1-7)Apache Tomcat Native li的旧版本1.1.20 安装了brary,而Tomcat建议使用大于1.1.21的版本

15:13:11,110 INFO [org.apache.coyote.http11.Http11AprProtocol](MSC服务主题1-3)在http-127.0.0.1-8080`上启动Coyote HTTP / 1.1`气氛尚未正确,仍在投掷同样的错误。

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)

我在演示中设置了所有内容。太