不同客户端调用EJB
来源:互联网 发布:阿里云服务器承载量 编辑:程序博客网 时间:2024/04/28 16:07
EJB支持的客户端类型:
- 本地客户端 (必须与企业Bean运行在同一个JVM中)
- 远程客户端
- Web service客户端
创建一个EJB项目:
1. 创建接口
public interface FirstEjb {public String saySomething(String name);}
2. 实现接口并加注解
@Stateless@Remote <a>/*@Local</a> @Webservice*/public class FirstEjbBean implements FirstEjb {public String saySomething(String name) {return name;}}
3. 将EJB项目部署到JBoss
创建客户端
一、 远程客户端
1. 创建一个java项目
2. 配置客户端环境
将EJB项目的接口打成jar包(如果有EntityBean,连同EntityBean一起打包),将这个jar包加入到客户端项目的类路径中。
将Jboss_home/client中的所有jar包加到客户端项目中。
3. 在客户端创建EJB对象(通过InitialContext得到EJB对象,InitialContext是JNDI的一个对象,JNDI是JBoss应用服务器提供的一种服务)
private static Context context; If(context==null){Hashtable props = new Hashtable();props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");props.put(Context.PROVIDER_URL,"jnp://EJB所在的IP:1099");Context=new InitialContext(props); } FirstEjb firstEjb = (FirstEjb)context.lookup("FirstEjbBean/remote"); firstEjb.saySomething("liusong");
二、 本地客户端
1. 创建一个java Web项目
2. 配置客户端环境
将EJB项目的接口打成jar包(如果有EntityBean,连同EntityBean一起打包),将这个jar包加入到客户端项目的类路径中。
3. 在客户端创建EJB对象
<%@ page import="javax.naming.*,com.tgb.ejb.*" %><html><body><%InitialContext context= new InitialContext();FirstEjb firstEjb = (FirstEjb)context.lookup("FirstEjbBean/local");firstEjb.saySomething("liusong");%></body></html>
三、 Web service客户端
暂时略
Web Service客户端可以访问Stateless Session Bean的接口,业务逻辑方法需要用@WebMethod标识。
远程调用和本地调用比较:
@Remote
@Local
客户端需要ejb接口jar包
需要
需要jndi配置
不需要
客户端需要Jboss客户端jar包
不需要
EntityBena需要实现序列化接口
不需要
客户端不需要在EJB服务器中运行
需要在服务器中运行
参数通过传值方式传递
参数通过传地址方式传递
只能Remote方式访问
可以Remote和Local方式访问
如果Bean中没有注明@Remote或者@Local,默认为@Local接口。
如果在本机调用EJB,采用Local接口访问要优于Remote接口。Remote接口访问EJB需要经过远程方法调用(RPCS)环节,而Local接口访问EJB直接从JVM中返回EJB的引用。
由于远程调用的速度比较慢,所以在设计的时候,尽量使用粗粒度的接口,以减少方法的调用,并尽可能在一次方法调用中传输完毕所需要的数据。
- 不同客户端调用EJB
- EJB客户端和服务器端不同机器
- Glassfish不同WEB项目调用ejb对象
- 详解Spring应用作为EJB客户端调用EJB方法
- 客户端调用EJB对象的基本步骤
- JBoss7 创建客户端通过JNDI调用EJB
- Weblogic 客户端调用EJB的方法
- EJB正确客户端调用(jboss6、jboss7)
- 不同profile之间EJB调用问题javax.naming.NameNotFoundException
- 客户端调用EJB方法(JBOSS做应用服务器)
- JBOSS 7创建客户端通过JNDI调用 EJB
- JBOSS系列(一) --EJB远程调用-客户端的配置
- JBoss 部署EJB应用并在客户端调用
- Jboss6.x&7.x EJB远程调用客户端代码
- EJB对象的部署及客户端调用简单示例
- 6.2 不同机器多客户端调用
- EJB客户端应用通过JNDI调用远程EJB的方法详解
- weblogic和jonas下ejb的客户端测试程序的不同写法
- Linux系统怎么搭建Linux日志服务器
- Qt example之Joke for Android( make for my honey)
- 【修炼四】技术预研
- Python语言和print版本说明
- Android开发调用本地新浪微博客户端进行授权、发微博
- 不同客户端调用EJB
- 大白话解析模拟退火算法
- 10本IT历史必读书
- tomcat session复制
- 单文档多视图切换函数
- WINDOWS关闭共享后怎样去掉图标上的小锁
- 最近安排。
- 如何在MFC单文档中创建多视图
- 关于struts2中表单提交时,中文乱码问题的解决