Hawtio 2.10.0 正在为 jolokia 复制 URL
Hawtio 2.10.0 is duplicating the URL for jolokia
我的 ActiveMQ 5.15.13 运行 在我的本地主机上使用 jolokia 没有任何问题:
# wget --user admin --password admin --header "Origin: http://localhost" --auth-no-challenge http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost
--2020-06-22 14:49:15-- http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8161... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘org.apache.activemq:type=Broker,brokerName=localhost.2’
org.apache.activemq:type=Broker,brokerName=localhost.2 [ <=> ] 2,24K --.-KB/s in 0s
2020-06-22 14:49:15 (175 MB/s) - ‘org.apache.activemq:type=Broker,brokerName=localhost.2’ saved [2291]
Hawtio 2.10.0 看起来没问题,但是当我尝试连接到 ActiveMQ 时收到此消息:
This Jolokia endpoint is unreachable. Please check the connection details and try again.
我检查了网络检查器,我想这就是问题所在:
Request URL: http://localhost:8161/hawtio/proxy/http/localhost/8161/api/jolokia/
在 URL 中进行一些更改后,我注意到 URL 中有一个硬编码部分:
http://localhost:8161/hawtio/proxy/
无论我做什么,那部分总是存在的,而另一部分:
http/localhost/8161/api/jolokia/
总是更改 我更改了设置,但由于某种原因它变成了查询字符串而不是预期的 URL:
http://localhost:8161/api/jolokia/
这是我正在使用的选项:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Dhawtio.disableProxy=true -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
我该如何解决这个问题?
提前致谢。
在回顾了很多使用 ActiveMQ 安装 Hawtio 的“相同”过程之后,我发现到处都是问题,并回顾了 ActiveMQ 和 Hawtio 的文档,我终于找到了 6 年前的一些信息,建议在将 Hawtio 与 ActiveMQ 一起使用时执行“额外步骤”,这解决了我的问题。
我可能错了,但从我的角度来看,Hawtio 有一个 highlander bug,它使用 HOST URL 作为基础,而不是创建的 SETUP CONNECTION URL,来修复这个问题问题,只需将以下行添加到 <ACTIVEMQ PATH>/conf/jetty.xml
:
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/hawtio" />
<property name="resourceBase" value="${activemq.home}/webapps/hawtio" />
<property name="logUrlOnStart" value="true" />
</bean>
那应该在里面:
<bean id="secHandlerCollection" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<ref bean="rewriteHandler"/>
我的 ActiveMQ 5.15.13 运行 在我的本地主机上使用 jolokia 没有任何问题:
# wget --user admin --password admin --header "Origin: http://localhost" --auth-no-challenge http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost
--2020-06-22 14:49:15-- http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8161... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘org.apache.activemq:type=Broker,brokerName=localhost.2’
org.apache.activemq:type=Broker,brokerName=localhost.2 [ <=> ] 2,24K --.-KB/s in 0s
2020-06-22 14:49:15 (175 MB/s) - ‘org.apache.activemq:type=Broker,brokerName=localhost.2’ saved [2291]
Hawtio 2.10.0 看起来没问题,但是当我尝试连接到 ActiveMQ 时收到此消息:
This Jolokia endpoint is unreachable. Please check the connection details and try again.
我检查了网络检查器,我想这就是问题所在:
Request URL: http://localhost:8161/hawtio/proxy/http/localhost/8161/api/jolokia/
在 URL 中进行一些更改后,我注意到 URL 中有一个硬编码部分:
http://localhost:8161/hawtio/proxy/
无论我做什么,那部分总是存在的,而另一部分:
http/localhost/8161/api/jolokia/
总是更改 我更改了设置,但由于某种原因它变成了查询字符串而不是预期的 URL: http://localhost:8161/api/jolokia/
这是我正在使用的选项:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Dhawtio.disableProxy=true -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"
我该如何解决这个问题?
提前致谢。
在回顾了很多使用 ActiveMQ 安装 Hawtio 的“相同”过程之后,我发现到处都是问题,并回顾了 ActiveMQ 和 Hawtio 的文档,我终于找到了 6 年前的一些信息,建议在将 Hawtio 与 ActiveMQ 一起使用时执行“额外步骤”,这解决了我的问题。
我可能错了,但从我的角度来看,Hawtio 有一个 highlander bug,它使用 HOST URL 作为基础,而不是创建的 SETUP CONNECTION URL,来修复这个问题问题,只需将以下行添加到 <ACTIVEMQ PATH>/conf/jetty.xml
:
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/hawtio" />
<property name="resourceBase" value="${activemq.home}/webapps/hawtio" />
<property name="logUrlOnStart" value="true" />
</bean>
那应该在里面:
<bean id="secHandlerCollection" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<ref bean="rewriteHandler"/>