Jakarta ee 从应用程序创建Glassfish JMS队列

Jakarta ee 从应用程序创建Glassfish JMS队列,jakarta-ee,glassfish,jms,Jakarta Ee,Glassfish,Jms,我目前正在JEE应用程序中使用多个JMS队列。由于我们的团队正在使用不同的暂存服务器,我希望在我的应用服务器中自动创建这些目的地 我希望这可以通过脚本实现,但我真的希望它可以通过Java应用程序实现。然而,我一直在做这方面的研究,我发现人们说这应该手动完成 如果可能的话,你能给我指一些关于如何用Java实现的参考资料/示例吗。否则,我希望这些资源用于shell 谢谢你的阅读 您可以使用注释创建JMS资源 这是否也会在应用服务器中创建JMS资源?是的,我链接的示例将在Payara服务器上工作,而不

我目前正在JEE应用程序中使用多个JMS队列。由于我们的团队正在使用不同的暂存服务器,我希望在我的应用服务器中自动创建这些目的地

我希望这可以通过脚本实现,但我真的希望它可以通过Java应用程序实现。然而,我一直在做这方面的研究,我发现人们说这应该手动完成

如果可能的话,你能给我指一些关于如何用Java实现的参考资料/示例吗。否则,我希望这些资源用于shell


谢谢你的阅读

您可以使用注释创建JMS资源


这是否也会在应用服务器中创建JMS资源?是的,我链接的示例将在Payara服务器上工作,而不配置应用服务器。这都是标准的JavaEE7规范,所以它也可以在任何应用服务器上使用,也可以在web.xml描述符中指定JMS资源。有关示例,请参见。
@JMSDestinationDefinition(
    name="java:global/queue/simpleQ",
    interfaceName="javax.jms.Queue",
    destinationName = "simpleQ"
)
@MessageDriven(activationConfig = {
    @ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "java:global/queue/simpleQ"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class MessageConsumer implements MessageListener {

    public MessageConsumer() {
    }

    @Override
    public void onMessage(Message message) {
        try {
            System.out.println("Message received: " + message.getBody(String.class));
        } catch (JMSException ex) {
            Logger.getLogger(MessageConsumer.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}