我正在运行一个ActiveMQ Artemis的嵌入式实例,在让Web控制台正确运行时遇到了一些麻烦.
为了让控制台运行,我遵循了these instructions.
这将成功启动控制台,我可以根据我在login.config
文件中设置的用户名和密码进行登录.然而,在浏览控制台时,我注意到我遗漏了控制台顶部的许多导航栏(队列、会话、生产者等),正如您在下图中所看到的,我不完全确定原因.
An additional problem that might help diagnose what is going on include the fact that just going to consoleHost:8161
pulls up the below result but consoleHost:8161/console
correctly redirects to the login page. However, these might be unrelated problems
查看解压后的artemis-plugin.war
目录(特别是\tmp\webapps\artemis-plugin.war\webapp\plugin\js\components\navigation.js
)中包含的JavaScript文件,我注意到包含这些文件是基于MBean服务器的,因此我的主要理论是应该将MBean服务器设置为ManagementFactory.getPlatformMBeanServer()
,而不是将其设置为更特定于Artemis的内容,但我不确定这将是什么.
比较本地运行的独立Artemis实例的控制台日志(log),它正确地显示控制台和我的嵌入式实现,唯一突出的初始化区别是工作日志(log)具有以下行:
[hawtio-jmx-rbac] Using mbean hawtio:type=security,area=jmx,name=ArtemisJMXSecurity for client-side role based access control
而我的错误实现却有这样一句话:
[hawtio-jmx-rbac] Using mbean hawtio:type=security,area=jmx,rank=0,name=HawtioDummyJMXSecurity for client-side role based access control
不知道这些是否有帮助,但任何可能出错的提示都将不胜感激,因为我已经抓挠了一段时间,试图让控制台在我的嵌入式Artemis实例上正常工作.
编辑:
使用我添加到original instructions中的代码更新我的答案
ActiveMQSecurityManager securityManager = server.getActiveMQServer().getSecurityManager();
ManagementContextDTO managementDTO = new ManagementContextDTO();
ManagementContext managementContext = ManagementFactory.create(managementDTO, securityManager);
server.getActiveMQServer().getManagementService().registerHawtioSecurity(managementContext.getArtemisMBeanServerGuard());
我把这些行放在第webServerDTO.addBinding(bindingDTO);
行之后和webServerComponent.configure(webServerDTO, pathToArtemis, pathToArtemis);
行之前
我相信这只是启用默认的安全配置,因为我从来没有定义一个management.xml
文件,但希望这是足以帮助任何人与同样的问题