2016-04-21 4 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 message = 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> 

Смежные вопросы