我遇到了以下问题:我需要在HAL管理控制台中创建一个消息队列。在视频教程中,它看起来像这样:
但是在教程中,据我所知,作者使用的是旧版控制台。我还有另一个菜单,它没有消息菜单项。我发现邮件菜单项:
但是据我了解,这不是我所需要的,因为我在这里找不到任何创建队列的方法。也许有人知道如何创建消息队列?我将不胜感激。预先感谢!
答案 0 :(得分:0)
我没有使用过控制台,因为很难再次编写 next 脚本。相反,我使用CLI来完成此操作。
要创建主题,请执行以下操作:
${wildfly.home}/bin/jboss-cli.sh --connect --controller=127.0.0.1:8080 --command="jms-topic add --topic-address=yourTopicName --entries=java:/jms/yourTopicName"
其中wildfly.home
是Wildfly的安装目录。要删除JMS队列,您将运行以下命令:
${wildfly.home}/bin/jboss-cli.sh --connect --controller=127.0.0.1:8080 --command="jms-topic remove --topic-address=yourTopicName"
我的生产者代码如下:
@Stateless
public class MyProducer {
@Resource(lookup = "java:/jms/yourTopicName")
private Topic topic;
@Inject
private JMSContext context;
public void sendMessage(MyCustomMessage customMessage) {
try {
ObjectMessage message = context.createObjectMessage();
message.setObject(customMessage);
context.createProducer().send(topic, message);
}
catch (JMSException e) {
// handle error
}
}
}
我的听众看起来像:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "java:/jms/yourTopicName"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic") })
public class MyListener implements MessageListener {
@Override
public void onMessage(Message message) {
}
}
请记住,要使用JMS,您需要以“完整”配置运行,即
bin/standalone.sh -c standalone-full.xml
答案 1 :(得分:0)
您可能已经在默认模式下启动了Wildfly(>没有JMS代理!)。
如果要在控制台中查看“消息传递”菜单,则需要使用名为standalone-full
的备用配置。
在终端会话中,进入Wildfy的“ bin”文件夹,然后键入:
./standalone.sh --server-config=standalone-full.xml
(或Windows的standalone.bat)
更多信息here