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