Я просто пытаюсь создать надежный подписчик JMS, и я использую сервер HornetQ. Но я получаю исключение follwing, брошенное на выполнение.Пользователь: null не имеет разрешения = CREATE_DURABLE_QUEUE по адресу
Connection Factory Looked Up : HornetQConnectionFactory [serverLocator=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=netty, factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory) ?port=5445&host=localhost], discoveryGroupConfiguration=null], clientID=null, consumerWindowSize = 1048576, dupsOKBatchSize=1048576, transactionBatchSize=1048576, readOnly=false]
Topic Looked Up : HornetQTopic[TestTopic]
Connection Created : [email protected]
CLient ID set : DSubCliID
Session Created : HornetQSession->DelegatingSession [session=ClientSessionImpl [name=ab3a1be5-559f-11e3-bd5b-87d0be06d2c5, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=netty, factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory) ?port=5445&host=localhost], discoveryGroupConfiguration=null], connectorConfig=TransportConfiguration(name=netty, factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory) ?port=5445&host=localhost, backupConfig=null], metaData=(jms-client-id=DSubCliID,jms-session=,)]@22eff179]
javax.jms.JMSSecurityException: HQ119032: User: null doesnt have permission=CREATE_DURABLE_QUEUE on address {2}
at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:388)
at org.hornetq.core.client.impl.ClientSessionImpl.internalCreateQueue(ClientSessionImpl.java:2021)
at org.hornetq.core.client.impl.ClientSessionImpl.createQueue(ClientSessionImpl.java:357)
at org.hornetq.core.client.impl.DelegatingSession.createQueue(DelegatingSession.java:298)
at org.hornetq.jms.client.HornetQSession.createConsumer(HornetQSession.java:782)
at org.hornetq.jms.client.HornetQSession.createDurableConsumer(HornetQSession.java:547)
at org.hornetq.jms.client.HornetQSession.createDurableConsumer(HornetQSession.java:527)
at DurableSubscriber.main(DurableSubscriber.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: HornetQSecurityException[errorType=SECURITY_EXCEPTION message=HQ119032: User: null doesnt have permission=CREATE_DURABLE_QUEUE on address {2}]
... 13 more
Похоже, что некоторые разрешения выдаются. Я не изменял никаких конфигураций, кроме добавления очереди и темы по умолчанию в hornetq-jms.xml.
<queue name="TestQueue">
<entry name="queues/TestQueue"/>
</queue>
<topic name="TestTopic">
<entry name="topics/TestTopic"/>
</topic>
конфигурации безопасности в hornetq-configuration.xml
выглядит следующим образом -
<security-settings>
<security-setting match="#">
<permission type="createNonDurableQueue" roles="guest"/>
<permission type="deleteNonDurableQueue" roles="guest"/>
<permission type="consume" roles="guest"/>
<permission type="send" roles="guest"/>
</security-setting>
</security-settings>
Все по умолчанию один. Что нужно сделать, чтобы я мог создать прочного абонента?
, что 'security' конфигурации вы в' hornetq-configuration.xml'? – harsh
@harsh обновил вопрос. –