1.EJB 的原理是什么
如果想了解ejb的原理,可以参考j2eeWithOutEjb和EjbHeadFirst这2本书,应该对ejb的流程很清晰
EJB我们首先要明确它是放在服务器端的组件.
一共有三种EJB
1,SessionBean 复杂处理业务逻辑的.
2,EntityBean 处理数据
3,MessageBean 消息Bean异步,耦合的处理.
那么谁能调用EJB呢?也或者说EJB被谁调用呢?我们说它就是放在server的一个能够远程调用的javaBean.所以它可以被Java的语言调用servlet,jsp等都ok的说.而且它还可以被C++语言调用.很强大吧.EJB的最基本的出发点就是推动Java在服务器端的编程能力.所以呢它的功能就我个人来看太强悍了..= =
这个远程调用是通过什么呢.Java是通过RMI-JRMP(java远程方法调用)协议来调用.EJB就是通过这个来实现的.C++是通过Corba-iiop协议来调用的.这个协议支持两端不同语言的调用.Corba是公共对象请求代理服务iiop是网络内部对象协议.
下面我们来简单说一下这个分布式的调用。客户端发送一个请求给服务器首先是传给stub代理类它发送参数给skeleton委托类然后这个类调用我们的实现类取得结果再远路返回。这样一个分布处理就结束了。后面会具体的结合代码分析。先记住这个大致的结构就好。
我们写一个EJB需要做那些工作呢?
1,写一个接口继承EJBObject 这个类作为远程接口
2,写一个接口继承EJBHome 这个类里有一个方法是create()它返回接口类型。
3,写一个Bean继承SessionBean, 这个类里包含一个create()方法和一个业务方法。
4,写一个ejb-jar.xml 这个xml是把上面的三个文件组合起来
5,写一个weblogic-ejb-jar.xml 这个xml是连接查找source的作用
上面的两个xml文件需要放在META-INF目录下。而以上这些类都需要打包在一个jar文件中然后在server部署。这样就完成了EJB的部署。例如:
2.eclipse如何发布ejb
depends on your ejb version:
if you use jee6 (ejb3.1), then you run jboss6/7, ejbs could be packaged in the .war file and deployed in a web module.
if you use jee5 (ejb3.0) or j2ee (ejb2.x), then you run jboss5.x/4.x, ejbs are normally packaged in a .ear file, as an ejb module. Your web application would be packaged in the .ear file as well and packaged as a web module. these information needs to be defined in a file "META-INF/application.xml" and packaged in the .ear archive as well.
No matter what ejb versions or jboss you use, packaging ejbs as an EJB module in a .ear file is working. You might need to search the web for a packaging example.
3.EJB是什么,做什么用的,有什么特点
1:EJB更多地是sun公司提出的一些概念,毕竟java就是sun公司的,现在老大告诉你饭该怎么吃,衣服该怎么穿,EJB的出现就是老大告诉你J2EE该怎么用
2:当然你完全可以非主流,完全抛弃EJB的概念,你想怎么使用J2EE都可以,不过嘛,EJB肯定是智慧的结晶的,sun公司在思想上一直领衔全球的,这就是特点
3:EJB的要求:可扩展 (Scalable),分布式 (Distributed),事务处理(Transactional),数据存储(Persistent),安全性 (Secure),他要求你做到这些方面,并且有相应的jar包或者例子给你,让你学着去搭建平台
4:你要问做什么用很难回答,你说一把刀能干嘛,切水果,割绳子,敲盖子,杀虫子,你想怎么用都行,EJB用来搭建服务器应用的,他主要处理逻辑和数据存储,如果不考虑性能或者方便性,你什么都可以用EJB做
4.ejb是什么
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序当然,还有许多方式可以实现分布式应用,类似微软的.net技术。
凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。
其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
5.谁能教我写个EJB入门级的单元程序
1.将数据库映射成Java类public class tb1 implements Serializable{ private String f1; @id //表示f1为该表的主键 public String getF1() { return f1; } public void setF1(Integer f1) { this.f1= f1; }}2.写接口public interface tb1DAO { public void insertTb1(String s1);}3.写一个类实现接口中的方法:@Stateless //表示无状态会话bean@Remote({tb1DAO.class})public class tb1DAOBean implements tb1DAO{ @PersistenceContext;//定义上下文持久化 EntityManager em; public void insertTb1(String s1){ Tb1 tb1 = new Tb1(); tb1.setF1(s1); em.persist(tb1); }}到此就实现了向数据库插入一条数据是s1;4.客户端:1)在src目录下写一个jndi.properties(固定写法)#jboss jndijava.naming.factory.initial=org.jnp.interfaces..naming.factory.url.pkgs=org.jboss.namingjava.naming.provider.url=jnp://localhost:10992)写一个方法进行测试public static void main(String[] args){ Context context = new InitialContext(); tb1DAO tb1 = (tb1DAO)context.lookup("tb1DAOBean/remote"); tb1.insertTb1("s1");}。
6.EJBEJB一个技术规范是什么呢
EJBEJB一个技术规范:EJB从技术上而言不是一种产品EJB,EJB是一种描述了构建应用组件要解决的标准:可扩展(Scalable)分布式(Distributed)事务处理(Transactional)数据存储(Persistent)安全性(Secure)EJB期望提供一个标准的分布的、基于OO的组件架构屏蔽复杂的系统级功能需求Writeonce,runanywhere与非Java应用之间的互操作能力兼容CORBA标准EJB选择EJBEJB服务器完成繁杂的工作:应用开发人员关注于业务逻辑的实现而不是底层的实现机制(类似于4GL语言设计的目标)支持事务处理多个业务操作同时成功,或全部失败可以通过在代码外的描述来定义事务处理级别EJB可扩展性EJB可以根据您应用的增长而扩展EJB服务器往往还提供了负载均衡安全性:由EJB服务器提供资源的访问权限控制EJBEJB架构为了满足架构的目标,规范中描述了服务器(Server)容器(Container)类(Class)和实例(Instance)Home和Remote接口客户端(Client)EJB编程模型关注于业务逻辑实现:EJB负责生命周期(lifecycle),数据存储(persistence),事务处理语义(transactionalsemantic),安全(security),。
通用的编程模型:各种服务的高层APIJava是其编程语言EJB(业务逻辑代码)表示了与特定商业领域(例如银行、零售等行业)相适应的逻辑。