问题描述:在外网有一台113的机器上面有一个7001的weblogic服务,上面搭建了weblogic JMS服务器。在内网同一样有一台机器作为JMS消息的消费者和生产者,要从外网113机器的JMS消息队列接收消息,并处理结束后,向外网113机器的JMS返回消息队列发送一条消息。这时部署完工程以后,启动,就出现了Weblogic跨域的问题。
1、错误描述
1.1、jms服务端不停的报:
<2013-4-2 下午11时33分20秒 CST> <Warning> <RMI> <BEA-080003> <RuntimeException thrown by rmi server: weblogic.jndi.internal.AdminRoleBasedDispatchServerRef@9, implementation: 'weblogic.jndi.internal.RootNamingNode@226649', oid: '9', implementationClassName: 'weblogic.jndi.internal.RootNamingNode'
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators].
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:833)
at weblogic.security.service.SecurityServiceManager.getSealedSubjectFromWire(SecurityServiceManager.java:522)
at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:352)
at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:953)
at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:351)
Truncated. see log file for complete stacktrace
>
1.2、客户端不停的报:
2013-4-3 0:40:14 org.springframework.jms.listener.DefaultMessageListenerContainer refreshConnectionUntilSuccessful
信息: Could not refresh JMS Connection for destination 'PersonInfoModule!PersonInfoQueueIn' - retrying in 5000 ms. Cause: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
2、解决方法
2.1、点左侧“域名”→点右侧“安全”→点“高级”→设置身份证明密码(注两个域的要设置相同的密码)→保存;
2.2、重起服务器域(两个域都要重起)。
详见下图: