知道为什么会出现以下错误。当从受管服务器上的应用程序向管理服务器上部署的队列发布JMS消息时,会发生这种情况。
009-06-02 11:21:18,688(com.xxx.util.servicelocator.ServiceLocator:612)错误 - 加载队列ProfilerNotify时出错
javax.naming.CommunicationException [根异常是java.rmi.ConnectException:此RJVM已经关闭3481854169479569584S:XX.XXX.X.XXX:[9200,9200,-1,-1,-1,-1 ,-1]:Production10:的AdminServer]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:64)
at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:426)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:382)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.xxx.util.servicelocator.ServiceLocator.loadQueue(ServiceLocator.java:607)
at com.xxx.util.servicelocator.ServiceLocator.getQueue(ServiceLocator.java:285)
答案 0 :(得分:2)
我们最近在类似情况下听到了这个错误。
原来是因为我们没有DNS中服务器的域名。我们没有使用域名(我们使用IP),但似乎weblogic需要能够反向查找IP地址,否则会产生这种误导性错误。
我们刚刚将相关的行添加到/ etc / hosts中,一切都开始工作了。
答案 1 :(得分:2)
确实是DNS名称解析问题。虽然我在应用程序服务器的/ etc / hosts中添加了条目,但由于无法解析DNS,因此需要在外部服务器中添加相同的条目。 我找到的另一种方式(没有/ etc / hosts中的任何条目)是在Weblogic控制台 - >服务器 - >托管服务器 - >常规选项卡 - >监听地址字段我有给定我的托管服务器的主机名。我将其更改为我的托管服务器的IP地址,然后能够连接到外部服务器。 “监听地址”字段的“更多信息”部分说明了有关提供DNS名称的一些内容:
要将DNS名称解析为IP地址,WebLogic Server必须能够联系相应的DNS服务器或在本地获取IP地址映射。因此,如果为侦听地址指定DNS名称,则必须将端口打开足够长的时间以使WebLogic Server实例连接到DNS服务器并缓存其映射,或者必须在本地文件中指定IP地址映射。如果为ListenAddress指定IP地址,然后客户端请求指定DNS名称,WebLogic Server将尝试解析DNS名称,但如果它无法访问DNS名称映射,则请求将失败