无法读取质询文件[由java.io.FileNotFoundException引起:/ jboss / standalone / tmp / auth / local4123 __。challenge(无此类文件或目录)

时间:2018-10-25 10:27:49

标签: jboss jms

我正在尝试使用JMS桥连接两台同时运行JBoss EAP 7.1.0的计算机。机器1充当Web服务器并部署了可访问的WAR文件,而机器2充当应用服务器并已部署了所有必要的组件。

这是我收到的错误:

  

WARN [org.apache.activemq.artemis.jms.bridge](服务器服务线程池-72)AMQ342010:无法连接JMS Bridge不适用:javax.naming.CommunicationException:WFNAM00018:无法连接至远程主机[根本异常是javax.security.sasl.SaslException:身份验证失败:所有可用的身份验证机制均失败:      JBOSS-LOCAL-USER:javax.security.sasl.SaslException:ELY05128:[JBOSS-LOCAL-USER]无法读取质询文件[由java.io.FileNotFoundException引起:/.../.../jboss/standalone/ tmp / auth / local3093626581916142639.challenge(无此类文件或目录)]]           在org.wildfly.naming.client.remote.RemoteNamingProvider.getPeerIdentityForNaming(RemoteNamingProvider.java:110)处           在org.wildfly.naming.client.remote.RemoteNamingProvider.getPeerIdentityForNaming(RemoteNamingProvider.java:53)           在org.wildfly.naming.client.NamingProvider.getPeerIdentityForNamingUsingRetry(NamingProvider.java:105)           在org.wildfly.naming.client.remote.RemoteNamingProvider.getPeerIdentityForNamingUsingRetry(RemoteNamingProvider.java:91)处           在org.wildfly.naming.client.remote.RemoteContext.lambda $ lookupNative $ 0(RemoteContext.java:189)           在org.wildfly.naming.client.NamingProvider.performExceptionAction(NamingProvider.java:222)           在org.wildfly.naming.client.remote.RemoteContext.performWithRetry(RemoteContext.java:100)           在org.wildfly.naming.client.remote.RemoteContext.lookupNative(RemoteContext.java:188)           在org.wildfly.naming.client.AbstractFederatingContext.lookup(AbstractFederatingContext.java:74)           在org.wildfly.naming.client.AbstractFederatingContext.lookup(AbstractFederatingContext.java:60)           在org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:144)           在javax.naming.InitialContext.lookup(InitialContext.java:417)           在javax.naming.InitialContext.lookup(InitialContext.java:417)           在org.apache.activemq.artemis.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:46)           在org.apache.activemq.artemis.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:32)           在org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1072)           在org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl.start(JMSBridgeImpl.java:398)           在org.wildfly.extension.messaging.activemq.jms.bridge.JMSBridgeService.startBridge(JMSBridgeService.java:114)           在org.wildfly.extension.messaging.activemq.jms.bridge.JMSBridgeService $ 1.run(JMSBridgeService.java:84)           在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)           在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)           在java.lang.Thread.run(Thread.java:748)           在org.jboss.threads.JBossThread.run(JBossThread.java:320)

正在建立到目标机器(应用程序服务器)的连接,因为到JBoss的路径就是机器上的路径,我通过在Windows应用程序服务器环境中进行测试进行了验证,并且该路径是正确的Windows路径。质询文件所在的目录,因此很显然,在访问目录时正在建立连接。但是,并非每次都显示.challenge文件,这可以理解为导致错误消息的原因。

我已经搜寻了SO和JBoss论坛数天了,但没有什么能解决我的问题。

我看到了这篇文章:JBOSS-LOCAL-USER: javax.security.sasl.SaslException: Failed to read server challenge

这是我面临的同一问题,但是被标记为正确的答案对我没有太大帮助。在这种情况下,解决方案是用JAAS领域替换默认的ApplicationRealm,但是我不知道这是否是我所需要的,并且我当然目前没有。我确实研究了它,但是它似乎不适用于我的设置,但是我可能会错。

我也尝试了以下解决方案:https://access.redhat.com/solutions/3209281(仅限订阅访问)

此解决方案是从此处删除default-user =“ $ local”:

<security-realm name="ApplicationRealm">
            <authentication>
                <local default-user="$local" allowed-users="*" skip-group-loading="true"/>

我对两台机器上的两个standalone-full.xml文件都执行了此操作,这似乎没有任何区别。

我在两台机器上都创建了应用程序用户,并通过JBoss控制台为他们提供了超级用户特权,因为我认为尝试写入文件时可能是权限问题,但这也无济于事。我还验证了两个用户凭据都是正确的。

1 个答案:

答案 0 :(得分:0)

根据贾斯汀在评论中的建议,解决方法是切换为使用核心桥而不是JMS桥。