Hawtio camel 调试面板显示 "Debugging is not allowed for this user"

Hawtio camel debug panel says "Debugging is not allowed for this user"

我的环境是:

servicemix 5.4.1 [system.properties 有 属性 "hawtio.authenticationEnabled=false"]
jolokia 代理 1.6.2
独立的 hawtio 2.10
阿帕奇骆驼 2.14.3

首先我启动servicemix

然后我使用"java -jar jolokia-jvm-1.6.2-agent.jar list"找到karaf进程ID
"java -jar jolokia-jvm-1.6.2-agent.jar --port 7777 start 21284" 将 jolokia 附加到 karaf JVM

然后 "java -jar hawtio-app-2.10.0.jar" 启动独立的 hawtio 应用程序

我正在使用蓝图 DSL

我的 Camel 端点是

<camelcxf:cxfEndpoint
        id="cxfOrderEndpointService"
        wsdlURL="wsdl/order.wsdl"
        xmlns:s="http://order.camelinaction"
        address="/orderservice"
        serviceClass="camelinaction.order.OrderInterface"
        endpointName="s:orderServicePort"
        serviceName="s:orderService"/>

我的 CamelContext 是

<camelContext id="camel" xmlns="http://camel.apache.org/schema/blueprint" trace="true">
    <route>
        <from uri="cxf:bean:cxfOrderEndpointService"/>
        <log message="hello from OrderEndpointService"/>
        <to uri="bean:helloBean?method=Hello"/>
        <to uri="bean:helloBean?method=Bye"/>
        <process ref="helloProcessor"/>
    </route>
</camelContext>

请帮助我,为了解决这个问题,我真的找不到任何可以帮助我的信息。

自己找到解决方案,即:

将 Hawtio 作为独立代理与 Jolokia OSGI 代理一起使用

  1. 从 - 下载 Jolokia OSGI 代理 https://jolokia.org/download.html(获取最新的 Osgi-Agent(完整包))
  2. 从 - https://github.com/hawtio/hawtio/releases 下载 Hawtio(获取最新版本)
  3. 运行 servicemix 或 karaf
  4. 将 Jolokia OSGI 代理安装到 karaf/servicemix processm
  5. 在 %KARAF_HOME%/etc/org.jolokia.osgi.cfg
  6. 创建配置文件
  7. 使用以下数据填充配置

    org.jolokia.user=卡拉夫
    org.jolokia.password=卡拉夫
    org.jolokia.agentContext=/约洛基亚
    org.jolokia.debug=真 org.jolokia.realm=卡拉夫
    org.jolokia.authMode=贾斯

  8. 在 karaf 控制台中安装 Jolokia OSGI 包 运行 : osgi:install file:c:\Users\avazhenin\Downloads\jolokia-osgi-bundle-1.6.2.jar

  9. osgi:停止 %jolokia-osgi-gent%
  10. osgi:启动 %jolokia-osgi-gent%
  11. http://localhost:8181/jolokia
  12. 下访问 Jolokia
  13. 运行 Hawtio 网络 - java -jar hawtio-app-2.10.0.jar
  14. 打开http://localhost:8080/hawtio/jvm/discover(Jolokia代理必须 被发现)
  15. goto http://localhost:8080/hawtio/jvm/connect(已经必须 找到代理,按连接)
  16. Hawtio 菜单将被扩展,您将看到 Camel 等...选项 (如果安装了骆驼功能)

问题是,Jolokia 独立代理无法在 karaf osgi 容器外正常工作(至少我找不到解决办法),因为它需要上面提到的配置,你不能在代理 运行time(例如,无法使用 java -jar .... 设置 Jolokia realm=karaf ....)

另一种方法是使用 "Jolokia as JVM Agent"

3.4。 JVM代理 当涉及检测其他代理未涵盖的任意 Java 应用程序时,JVM 代理是正确的代理。通过向 JVM

提供某些启动选项,任何 Java 程序都可以启动此代理

所以基本上在 servicemix.bat 中定义了 DEFAULT_JAVA_OPTS,在末尾添加以下内容:
-javaagent:jolokia-jvm-1.6.2-agent.jar=host=localhost,realm=karaf,authMode=jaas,debug=true,user=karaf,password=karaf,port=8888

因此,您可以设置 realm 参数和 authMode,这样 Jolokia 就可以正常工作,并且可以使用 Debug 和 Trace 功能。