Java Can';t在WIldfly 11上向队列发送消息
我有一个小消息制作人:Java Can';t在WIldfly 11上向队列发送消息,java,jms,wildfly,Java,Jms,Wildfly,我有一个小消息制作人: public static void main(String[] args) throws Exception { BasicConfigurator.configure(); Properties env = new Properties(); InputStream is = Producer.class.getResourceAsStream("/jms.properties"); env.load(
public static void main(String[] args) throws Exception {
BasicConfigurator.configure();
Properties env = new Properties();
InputStream is = Producer.class.getResourceAsStream("/jms.properties");
env.load(is);
Context context = new InitialContext(env);
ConnectionFactory factory = (ConnectionFactory) context.lookup("jms/RemoteConnectionFactory");
Destination queue = (Destination) context.lookup("jms/demoQueue");
JMSContext jmsContext = factory.createContext();
jmsContext.createProducer().send(queue, "Message");
}
使用以下属性:
java.naming.factory.initial = org.wildfly.naming.client.WildFlyInitialContextFactory
java.naming.provider.url = http-remoting://localhost:8080
java.naming.security.principal = alex
java.naming.security.credentials = password
messagingProvider = demo
connectionFactoryNames = QueueFactory
queue.queueReq = jms.queueReq
queue.queueResp = jms.queueResp
但我有一个例外:
“原因:javax.jms.JMSSecurityException:AMQ119031:无法
“验证用户”
我相信我在服务器上配置错误。但究竟是什么呢?安全设置具有以下模式:#角色为来宾和管理员。我看不到任何与安全性相关的内容使用两个参数调用重载的
createContext()
方法:
JMSContext context=factory.createContext(“alex”,“password”);
如果“alex”用户分配了正确的角色,那么它应该可以工作
我记得我曾与开发人员讨论过createContext()
应该如何工作(它与新的安全子系统Elytron有关),现在的决定是:它按设计工作,但将来可以增强
有关详细信息,请参阅。使用两个参数调用重载的
createContext()
方法:
JMSContext context=factory.createContext(“alex”,“password”);
如果“alex”用户分配了正确的角色,那么它应该可以工作
我记得我曾与开发人员讨论过createContext()
应该如何工作(它与新的安全子系统Elytron有关),现在的决定是:它按设计工作,但将来可以增强
有关详细信息,请参阅