2016-04-21 97 views
2

我正在嘗試使用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

回答

1

使用註釋不夠我想。 似乎您的安全域未在您的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>