如果我想在swing里调用一个ejb 的方法我应该怎么做那?有人有代码吗?顺便讲讲原理呗谢谢啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以,你需要知道 EJB 服务端所在的地址,然后从 JNDI 中直接查找。客户端 JNDI 查找方式与服务端所用的 J2EE 应用服务器有关。比如 JBoss 可以这样做:public static void main(String[] args) { Context ctx = getContext(); Object ref = ctx.lookup("XxxxxBean/remote"); // EJB 的 JNDI 名字 Xxxxx ejb = (Xxxxx)PortableRemoteObject.narrow(ref, Xxxxx.class); // Xxxxx 是 EJB 的 remote 接口,之后就可以使用这个 ejb 对象了。}public Context getContext() throws ... { Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interface"); p.put(Context.PROVIDER_URL, "jnp://xxx.xxx.xxx.xxx:1099"); // xxx.xxx.xxx.xxx 为服务端 IP return new javax.naming.InitialContext(p);} 其他 J2EE 应用服务器不同之处在于 getContext 中的 put 的属性值,以及 Context#lookup 中的 JNDI 名字(在 EJB 3.1 之前这个名字没有规范化,这个 JNDI 名字由具体的 EJB 厂商做主)。 那比如一个b/s的项目是ejb的我只要知道jndi就可以随便操作这个ejb了? 那比如一个b/s的项目是ejb的我只要知道jndi就可以随便操作这个ejb了? 那比如一个b/s的项目是ejb的我只要知道jndi就可以随便操作这个ejb了? 是的EJB 作为服务端,你的 B/S 属于客户端,如果 EJB 和 B/S 程序不是在一个 EAR 工程中的话,只要把 EJB 的接口拿过去就行了。 如果 EJB 和程序不是打包在一个 ear 包中的话,那么那个 EJB 必须是 Remote 型的才能被调用得到。 java字符串分隔 java中如何把utf-8的汉子转为gbk,我用的jdk1.6。 SWT中实时显示时间出错 判断输入的是否是正整数? 发疯了,ORACLE中long类型的写入 大家试试,怎么会没有输出呢?明明有print,就是输不出来。 jdk使用问题 SCJP题 各位兄弟,考SCJP看哪本书好些?电子或电邮的!(100分求教) JAVA APPLET上怎样绘制曲线,曲面? HashMap这样删除一条记录 为什么会报错? csdn最近怎么呢?
Context ctx = getContext();
Object ref = ctx.lookup("XxxxxBean/remote"); // EJB 的 JNDI 名字
Xxxxx ejb = (Xxxxx)PortableRemoteObject.narrow(ref, Xxxxx.class); // Xxxxx 是 EJB 的 remote 接口,之后就可以使用这个 ejb 对象了。
}public Context getContext() throws ... {
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interface");
p.put(Context.PROVIDER_URL, "jnp://xxx.xxx.xxx.xxx:1099"); // xxx.xxx.xxx.xxx 为服务端 IP
return new javax.naming.InitialContext(p);
}