WEBLOGIC远程调用EJB的问题??
zjxyz 2001-08-13 08:06:02 我组建了两台WEBLOGIC的服务器,一起开着,想在一台机器上调用另一台机器的EJB
除非在 EJB 客户端程序指明该EJB所在的服务器的地址,
即定义为:
private String url = "t3://remote:7001";
不能设置成:
private String url = "t3://localhost:7001";
否则,将无法找到那个远过程对像,这样不是成了RMI了吗?
请教,要怎样设置才能令到EJB 客户端程序能通过WEBLOGIC找到远过程的对象,而不须指明EJB所在的地址。
我曾看过一篇这样的帖子介绍这样可以实现,但是不行,原文如下:
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
出现上面提到的问题后,我仔细看了一下 J2EE 中关于 JNDI 部分的代码,最后的出的
结论是很见单:)
其实我们只要写一个简单的配置文件 jndi.properties 就可以解决上面的所有问题
了,呵呵:),需要把 jndi.properties 文件所在的路径放到 classpath 中。
需要注意的是,一定要把 jndi.properties 文件放到 classpath 的最前面,否则可能
会没有效果,因为 JDNI 是以 classpath 中最先读到的 jndi.properties 文件的作为
标准的:P。
这样一来,我们只要直接用
Context initial = new InitialContext();
Object objref = initial.lookup("MyCart");
CartHome home = (CartHome)PortableRemoteObject.narrow(objref,
CartHome.class);
语句! 就可以了,呵呵,是不是很爽呀?
jndi.properties 文件的内容如下:
============================================================================
========
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://192.168.255.250:7001
java.naming.security.principal=guest
java.naming.security.credentials=guest
============================================================================
========
注:weblogic 中缺省的用户和密码是 guest,guest,如果你禁止了 guest 客户,那么
必须修改为相应的有权限的用户名和密码。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※