我正在运行一个ActiveMQ Artemis的嵌入式实例,在让Web控制台正确运行时遇到了一些麻烦.

为了让控制台运行,我遵循了these instructions.

这将成功启动控制台,我可以根据我在login.config文件中设置的用户名和密码进行登录.然而,在浏览控制台时,我注意到我遗漏了控制台顶部的许多导航栏(队列、会话、生产者等),正如您在下图中所看到的,我不完全确定原因.

enter image description here

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 enter image description here

查看解压后的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文件,但希望这是足以帮助任何人与同样的问题

推荐答案

artemis插件需要一个正在运行的ManagementContext,您可以从https://github.com/apache/activemq-artemis/blob/2.32.0/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Run.java#L86中提取启动ManagementContext的步骤

控制台支持rootRedirectLocation属性来设置位置,以便将请求重定向到根目标,请参见https://activemq.apache.org/components/artemis/documentation/latest/web-server.html#embedded-web-server

Java相关问答推荐

Maven Google Sheets版本问题

查找最大子数组的和

如何使用Java API在Oracle ODI中运行模拟?

RxJava PublishSubject缓冲区元素超时

取消按钮,但没有任何操作方法引发和异常

对运行在GraalVM-21上的JavaFX应用程序使用分代ZGC会警告不支持JVMCI,为什么?

为什么Java Annotation接口覆盖对象类中的方法

暂停计时器

OpenGL ES 3.0-纹理黑色

测试容器无法加载类路径初始化脚本

如何在Java记录中设置BigDecimal类型属性的精度?

如何在Application.yaml中连接字符串?

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

将JSON字符串转换为Java类

插入中的JOOQ序列,设置为VS值

在整数列表中查找和可被第三个整数整除的对时出现无法解释的RunTimeError

我该如何为我的类编写getter和setter方法?

由于版本不匹配,从Java 8迁移到Java 17和Spring 6 JUnit4失败

错误:JOIN/ON的参数必须是boolean类型,而不是bigint类型.Java Spring启动应用程序

带有提取器的JavaFXObservableList会根据侦听器的存在而改变行为