首先感谢你抽出时间看这个问题。 我在使用Pap(Openshift Origin)上运行qpid时遇到了一些问题。
我正在使用钝力方法让它第一次运行,只需将其复制到服务器而不使用ReST API。 我尝试运行qpid时遇到的错误如下:
[dsxcore-dsx.dsx.org apache-qpid]\> qpid-broker-0.22/bin/qpid-server
System Properties set to -Damqj.logging.level=info -DQPID_HOME=/var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22 -DQPID_WORK=apache-qpid/work
QPID_OPTS set to -Damqj.read_write_pool_size=32 -DQPID_LOG_APPEND=
Using QPID_CLASSPATH /var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/lib/qpid-all.jar:/var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/lib/plugins/*:/var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/lib/opt/*
Info: QPID_JAVA_GC not set. Defaulting to JAVA_GC -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError
Info: QPID_JAVA_MEM not set. Defaulting to JAVA_MEM -Xmx1024m
[Broker] BRK-1006 : Using configuration : /var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/apache-qpid/work/config.json
[Broker] BRK-1007 : Using logging configuration : /var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/etc/log4j.xml
[Broker] BRK-1001 : Startup : Version: 0.22 Build: 1486100
[Broker] BRK-1010 : Platform : JVM : Oracle Corporation version: 1.7.0_45-mockbuild_2013_10_16_17_47-b00 OS : Linux version: 3.11.4-201.fc19.x86_64 arch: amd64
[Broker] BRK-1011 : Maximum Memory : 1,056,309,248 bytes
[Broker] BRK-1002 : Starting : Listening on TCP port 5672
[Broker] MNG-1001 : JMX Management Startup
[Broker] MNG-1002 : Starting : RMI Registry : Listening on port 8999
[Broker] MNG-1002 : Starting : JMX RMIConnectorServer : Listening on port 9099
[Broker] MNG-1004 : JMX Management Ready
[Broker] MNG-1001 : Web Management Startup
Exception during startup: java.lang.RuntimeException: Failed to start http management on ports [PortAdapter [id=1cdbe831-ee81-4039-aa46-4b07865189bf, name=HTTP]]
java.lang.RuntimeException: Failed to start http management on ports [PortAdapter [id=1cdbe831-ee81-4039-aa46-4b07865189bf, name=HTTP]]
at org.apache.qpid.server.management.plugin.HttpManagement.start(HttpManagement.java:180)
at org.apache.qpid.server.management.plugin.HttpManagement.setState(HttpManagement.java:156)
at org.apache.qpid.server.model.adapter.AbstractAdapter.setDesiredState(AbstractAdapter.java:99)
at org.apache.qpid.server.model.adapter.BrokerAdapter.changeState(BrokerAdapter.java:907)
at org.apache.qpid.server.model.adapter.BrokerAdapter.setState(BrokerAdapter.java:870)
at org.apache.qpid.server.model.adapter.AbstractAdapter.setDesiredState(AbstractAdapter.java:99)
at org.apache.qpid.server.configuration.updater.ChangeStateTask.call(ChangeStateTask.java:59)
at org.apache.qpid.server.configuration.updater.ChangeStateTask.call(ChangeStateTask.java:28)
at org.apache.qpid.server.configuration.updater.TaskExecutor.executeTask(TaskExecutor.java:213)
at org.apache.qpid.server.configuration.updater.TaskExecutor.access$200(TaskExecutor.java:46)
at org.apache.qpid.server.configuration.updater.TaskExecutor$CallableWrapper$1.run(TaskExecutor.java:252)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.qpid.server.configuration.updater.TaskExecutor$CallableWrapper.call(TaskExecutor.java:247)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
答案 0 :(得分:0)
默认情况下,Qpid Broker(Java)在端口8080上启动HTTP管理接口。您看到的堆栈跟踪最可能的解释是某些其他进程已绑定到该端口。此问题阻止Qpid启动。 (端口是共享系统资源,任何时候只有一个进程可以绑定到[= listen on]端口。)
在继续操作之前,您需要解决端口冲突。您可以通过两种方式解决此问题:您可以识别其他进程并将其重新配置为使用其他端口,或者您可以重新配置Quid。
如果选择前者,请使用lsof或netstat等命令来发现其他进程的名称,然后参阅其文档以了解如何重新配置端口绑定。请记住,该过程可能属于另一个用户。
sudo lsof -i:8080
如果选择后一种路由,则该技术会根据您是否具有现有配置存储而有所不同。如果您正在启动Qpid 第一次(即磁盘上没有现有配置存储),则可以使用 - config-property 选项覆盖默认的HTTP管理端口。
./bin/qpid-server --config-property "qpid.http_port=8081"
(端口分配永久写入配置存储区,因此新值将用于后续重新启动)。
如果您有现有配置存储,则使用 - 管理模式和 - management-mode-http-port< port> 选项启动管理模式下的代理监听临时管理端口。
./bin/qpid-server --management-mode --management-mode-http-port 10080
然后使用Web浏览器连接到管理,然后将冲突的HTTP端口永久重新分配给所需(未使用)的值。最后,正常重启Qpid(没有管理模式选项)将代理恢复到正常运行状态。
这些技术在Configuring and Managing中的Qpid documentation中有更详细的描述。
答案 1 :(得分:0)
也许有点太晚了,但还是...... 我发现有一个strace,配置转到/ home / userdirectory /config.json