EJB调用远程EJB

javan 2008-01-15 11:21:45
有两台weblogic服务器,现在想在其中一台服务器上写一个EJB来调用另一台服务器jndi名为“LOGIN”的EJB。但是调试了很久没有调通,老是提示找不到服务。
其中EJB调用远程EJB的代码片段:
AgentHome home = null;
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
props.put(Context.PROVIDER_URL, "t3://132.1.18.11:91");
InitialContext remoteCtx = new InitialContext(props);

Object ref = remoteCtx.lookup("LOGIN");
home = (AgentHome) PortableRemoteObject
.narrow(ref, AgentHome.class);
Agent remote = home.create();

return (String) remote.referApply(sxml);
是不是EJB内要调用远程EJB在部署文件ejb-jar.xml或者在web.xml文件要设置的。还是其他的错误。。
请各位大侠请教!!!!!
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyxvic1981 2011-05-30
  • 打赏
  • 举报
回复
mark ,mark is necessary
老紫竹 2008-01-16
  • 打赏
  • 举报
回复
如果能,则把连接代码移植到EJB中

你是不是用的LocalHome的接口哦!
javan 2008-01-16
  • 打赏
  • 举报
回复
用普通java类可以连上,允许匿名使用EJB。
老紫竹 2008-01-16
  • 打赏
  • 举报
回复
注意防火墙问题。
还有对方允许匿名使用EJB?是不是还需要密码啊!
老紫竹 2008-01-16
  • 打赏
  • 举报
回复
用普通应用客户端连接看看!
如果不能,则是对方服务的问题
如果能,则把连接代码移植到EJB中
javan 2008-01-16
  • 打赏
  • 举报
回复
问题解决,在两个EJB服务器上建立域信任。然后再用用户名和密码登录就可以调用成功。
其中EJB调用远程EJB的代码片段:
AgentHome home = null;

String user = "administrator";
String paw = "admin";

Properties props = new Properties();

props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
props.put(Context.PROVIDER_URL, "t3://132.1.18.11:91");
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS,password);
InitialContext remoteCtx = new InitialContext(props);

Object ref = remoteCtx.lookup("LOGIN");
home = (AgentHome) PortableRemoteObject.narrow(ref, AgentHome.class);
Agent remote = home.create();

return (String) remote.referApply(sxml);

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧