- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个简单的 JMS 发送器和接收器。
我使用 jboss-amq 作为代理。
他们使用 jndi 来查找值。
jndi.properties
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://localhost:61616
java.naming.security.principal = admin
java.naming.security.credentials = admin
connectionFactoryNames = ConnectionFactory
queue.TRADE.Q = TRADE.Q
使用这些值我得到以下异常:
Exception in thread "main" javax.jms.JMSSecurityException: User name [null] or password is invalid.
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:52)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1393)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1496)
at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:523)
at examples.JMSSender.main(JMSSender.java:26)
Caused by: java.lang.SecurityException: User name [null] or password is invalid.
at org.apache.activemq.security.JaasAuthenticationBroker.authenticate(JaasAuthenticationBroker.java:89)
at org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:68)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:97)
at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:102)
at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:817)
at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:77)
at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:338)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188)
at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:300)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.security.auth.login.LoginException: Username can not be null
at org.apache.karaf.jaas.modules.properties.PropertiesLoginModule.login(PropertiesLoginModule.java:90)
at org.apache.karaf.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
at org.apache.activemq.security.JaasAuthenticationBroker.authenticate(JaasAuthenticationBroker.java:84)
... 15 more
我注意到如果我将以下内容添加到 jndi 文件中
userName=admin
password=admin
两个程序运行没有错误
那么,第一种方法有什么问题?
最佳答案
作为与 connectionFactoryNames = ConnectionFactory 属性一起使用的默认工厂的 activemqconnectionfactory 类设置了一个 IntrospectionSupport 类来设置专门查找 userName 和 Password 属性而不是 creds 和 principal 的属性
关于javax.jms.JMSSecurityException : User name [null] or password is invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38329060/
我正在使用 Apache Camel 和 Spring 从我的 Java 服务发送消息。我需要处理/触发某些事件,以防交换时发生任何错误。我正在使用下面的代码来实现我的目标。 try {
环境: Jboss 7.1.0操作系统窗口 我正在尝试一个简单的测试,使用带有内置 HornetQ JMS 提供程序的 Jboss 来试用 JMS。经过大量尝试后,我设法通过此配置获得响应
我有一个在 Websphere 6.0 上运行的基于 JMS 的应用程序,并且正在迁移到 Websphere 7。两个 Websphere 服务器都由 Websphere MQ 6.0 服务器支持。尝
我有一个简单的 JMS 发送器和接收器。 我使用 jboss-amq 作为代理。 他们使用 jndi 来查找值。 jndi.properties java.naming.factory.ini
当使用 Spring 的 JmsTemplate 发布到安全的 WebLogic JMS 队列时,我收到了一个 JmsSecurityException。麻烦的是,我能够使用等效的非 Spring 代
EJB 3网络逻辑:10.3.xJDK:1.7.x 当我们为现有的 TIBCO 连接工厂/队列启用 SSL 时,我们面临以下错误。我们的要求是为 tibco 连接工厂/队列启用 SSL。 javax.
使用 WildFly 9.0.2 最终版本,部分在 standalone-full.xml 中定义如下。 像 这样的部分, 和 完全省略了,因为我没有更改其中的任何内容。 ProjectR
我是一名优秀的程序员,十分优秀!