使用JMS 2.0自动资源定义的用户定义

问题描述:

我正在尝试使用JMS 2.0自动资源定义功能。下面是资源的定义是在一个生产:使用JMS 2.0自动资源定义的用户定义

@JMSConnectionFactoryDefinition(
     name = "java:global/jms/MyConnectionFactory", 
     user = "guest", 
     maxPoolSize = 30, 
     minPoolSize = 20, 
     properties = { 
       "addressList=mq://localhost:7676", 
       "reconnectEnabled=true", 
       "" 
     } 
) 
@JMSDestinationDefinition(
     name = "java:global/jms/DemoQueue", 
     interfaceName = "javax.jms.Queue", 
     destinationName = "demoQueue" 
) 
... 
    @Resource(mappedName = "java:global/jms/DemoQueue") 
    private Queue defaultQueue; 

    @Inject 
    @JMSConnectionFactory("java:global/jms/MyConnectionFactory") 
    JMSContext context; 

在消费者:

@Resource(mappedName = "java:global/jms/DemoQueue") 
private Queue defaultQueue; 

@Inject 
@JMSConnectionFactory("java:global/jms/MyConnectionFactory") 
JMSContext context; 

我与以前的配置错误:

产生的原因:HornetQSecurityException [ERRORTYPE = SECURITY_EXCEPTION消息= HQ119031:无法验证用户:null] ... 166更多

了java.lang.RuntimeException:javax.jms.JMSSecurityRuntimeException: HQ119031:无法验证用户:空

我如何使用注解解决这个问题?

+0

亚历山大,做了@ DJ-MERKEL的回答帮助?如果是这样,你应该将其标记为正确的答案 – JGlass

使用注释不够我想。 似乎您的安全域未在您的hornetq服务器上注册。 尝试增加

<security-domain>yourSecurityDomain</security-domain> 

<hornetq-server> 

标签下的独立,full.xml 或创建MYNAME-jms.xml文件并把它放在你这样的wildfly部署目录...(你可以用队列替代话题,如果想要可队列)

<?xml version="1.0" encoding="UTF-8"?> 
<messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0"> 
    <hornetq-server> 
    <security-domain>myDomain</security-domain> 
    <jms-destinations> 
       <jms-topic name="myTopic"> 
        <entry name="topic/myTopic"/> 
        <entry name="java:global/jms/myTopic"/> 
       </jms-topic>    
</jms-destinations> 
</hornetq-server>