gpt4 book ai didi

java - ActiveMQ命令行异常: "Failed to retrieve RMIServer stub"

转载 作者:行者123 更新时间:2023-12-01 17:29:43 27 4
gpt4 key购买 nike

我在服务器上运行 ActiveMQ 5.10.0,并且我尝试使用命令行提取我在 AMQ Web 控制台 ( https://activemq.apache.org/web-console ) 中看到的信息。

所有命令行都不起作用。 IE。 bin 文件夹中是用于执行命令行的 activemq 脚本(例如 ./activemq bstat./activemq list),但我保留收到此错误:

Connecting to JMX URL: service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
ERROR: java.lang.RuntimeException: Failed to execute list task. Reason: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused]
java.lang.RuntimeException: Failed to execute list task. Reason: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:

奇怪的是,当我在本地电脑上下载并启动相同版本的 AMQ 时,AMQ 命令行可以正常工作。这是我在尝试 list 命令时得到的输出:

>activemq list
Java Runtime: Oracle Corporation 1.8.0_161 C:\Program Files\Java\jdk1.8.0_161\jre
Heap sizes: current=1005056k free=989327k max=1005056k
JVM args: -Dcom.sun.management.jmxremote -Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties -
...........
<more log data>
...........
useJmxServiceUrl Found JMS Url: service:jmx:rmi://127.0.0.1/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjE2OS4yNTQuNjguMjM3AADDoqnwRJwaEyt6UvhZyAAAAXFkS9pNgAEAeA==
Connecting to pid: 3332
brokerName = localhost

如何使远程服务器上运行的相同命令起作用?

最佳答案

因此,查看 StackOverflow 和其他网站上的类似问题,似乎我需要在 ActiveMQ 启动时向其添加 JVM 参数。

AMQ 的 bin 文件夹包含一个脚本 activemq,该脚本在同一 bin 文件夹中启动 activemq.jar 文件。

我需要更新部分脚本文件以包含这些 JVM 参数(在您的脚本中不要包含行尾的 # 注释):

<script code above>
# Execute java binary
if [ -n "$PIDFILE" ] && [ "$PIDFILE" != "stop" ];then

$EXEC_OPTION $DOIT_PREFIX "$JAVACMD $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
-Dactivemq.classpath=\"${ACTIVEMQ_CLASSPATH}\" \
-Dactivemq.home=\"${ACTIVEMQ_HOME}\" \
-Dactivemq.base=\"${ACTIVEMQ_BASE}\" \
-Dactivemq.conf=\"${ACTIVEMQ_CONF}\" \
-Dactivemq.data=\"${ACTIVEMQ_DATA}\" \
-Dcom.sun.management.jmxremote \ #THIS is added
-Dcom.sun.management.jmxremote.port=1099 \ #THIS is added
-Dcom.sun.management.jmxremote.rmi.port=1099 \ #THIS is added
-Dcom.sun.management.jmxremote.authenticate=false \ #THIS is added
-Dcom.sun.management.jmxremote.ssl=false \ #THIS is added
$ACTIVEMQ_CYGWIN \
-jar \"${ACTIVEMQ_HOME}/bin/activemq.jar\" $COMMANDLINE_ARGS >/dev/null 2>&1 &
RET=\"\$?\"; APID=\"\$!\";
echo \$APID > $PIDFILE;
echo \"INFO: pidfile created : '$PIDFILE' (pid '\$APID')\";exit \$RET" $DOIT_POSTFIX
RET="$?"
<script code below>

之后,我只需启动 ./activemq 脚本,现在我就可以像在我的计算机上运行的 AMQ 上一样执行命令行了。

关于java - ActiveMQ命令行异常: "Failed to retrieve RMIServer stub",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61145272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com