使用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:无法验证用户:空
我如何使用注解解决这个问题?
答
使用注释不够我想。 似乎您的安全域未在您的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>
亚历山大,做了@ DJ-MERKEL的回答帮助?如果是这样,你应该将其标记为正确的答案 – JGlass