weblogic远程队列配置,在weblogic运行环境中测试成功

最近项目里要用到weblogic远程队列,研究了一下,在自己本机的不同域之间测试通过:

   配置过程大致如下:1、创建jms server和jms module;2、在jms module中创建Foreign server;3、在Foreign server中的常规选项中设置JNDI Connection URL(包括协议和端口号,即:java.naming.provider.url)、JNDI Properties Credential(密码,即:java.naming.security.credentials)、Confirm JNDI Properties Credential(密码确认),另外JNDI Properties添加java.naming.security.principal(相当于用户名);4、在Destination选项中,设置local jndi name(本地队列名)与remote jndi name(远程队列)的映射关系;5、在Connection Factories选项中,设置local jndi name(本地连接工厂)与remote jndi name(远程连接工厂)的映射关系;6、然后在web应用中应用local jndi  name就基本搞定了。但是我的程序报错了:

java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
	at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:815)
	at weblogic.security.service.SecurityServiceManager.getSealedSubjectFromWire(SecurityServiceManager.java:504)
	at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:316)
	at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:817)
	at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:301)
	at weblogic.rmi.cluster.ClusterableServerRef.dispatch(ClusterableServerRef.java:236)
	at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:1084)
	at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:1001)
	at weblogic.rjvm.ConnectionManagerServer.handleRJVM(ConnectionManagerServer.java:240)
	at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:893)
	at weblogic.rjvm.MsgAbbrevJVMConnection.dispatch(MsgAbbrevJVMConnection.java:446)
	at weblogic.rjvm.t3.MuxableSocketT3.dispatch(MuxableSocketT3.java:368)
	at weblogic.socket.AbstractMuxableSocket.dispatch(AbstractMuxableSocket.java:378)
	at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:105)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
在网上查了一下,是weblogic的域信任问题,配置地址 http://edocs.weblogicfans.net/wls/docs92/secmanage/domain.html

配置域信任的过程如下:

    1、在本地的weblogic 工作窗口中,点击本地域名(myDomain),点击Security选项卡;

     2、勾选Cross Domain Security Enabled(跨域安全许可),启动许可;

    3、在高级设置部分,填写Credential和Confirm Credential(安全密码);


这样的话,weblogic的远程队列就可以使用了。

猜你喜欢

转载自blog.csdn.net/lztyll123/article/details/8900196
今日推荐