- 浏览: 174311 次
- 性别:
- 来自: 成都
-
文章分类
最新评论
-
gwill_21:
dwr.xml找不到怎么办,难道要自己手写dwr.xml?痛苦 ...
DWR框架 —— 用户注册验证 -
recoba7:
MLDN魔乐科技 Oracle学习笔记 (5) -
lanni2460:
呵呵 尽管现在才看到这个 但是我真的觉得 李老师 讲的很好呢 ...
严重声明,那些恶意诋毁MLDN及李兴华老师的其他培训机构统统走开 -
chian_xxp:
只要把功能实现了,代码结构合理了,代码性能提高了,该注意的注意 ...
业务、业务、业务。。。 -
wzpbb:
密码多少啊??? 给一下啊
MLDN 魔乐科技 Oracle 学习笔记(2)
EJB是SUN公司提出的开发表示,使用了JTA,使用了Hibernate的一些源代码,主要完成分步式开发与后台的数据库操作。
EJB:Enterprise JavaBean,共有以下三大类和六小类的Bean。
SessionBean:相当于DAO接口与实现类。
实现类:
stateful:有状态。
stateless:无状态。
接口:
remote:远程接口,可以进行远程交互
local:本地接口,只能在同一个服务器中执行。
EntityBean:相当于pojo和XML映射文件
CMP:容器管理持久化,表示对象的创建与销毁由容器来完成。
BMP:Bean管理持久化,普通的JavaBean方式,当不使用时自动销毁。
MessageDrivenBean:JMS功能(Java Message Server),用来在不同的项目之间传递消息的
PTP:点对点,一个点到另一个点的单独发送的消息。
Topic:主题,先订阅,在一定时间或情况下由发送方自动将信息发给所有订阅的项目。
开发环境:
MyEclipse5.5以上版本 + JBoss4.2以上版本
EJB项目的组成:
总的项目 + EJB端项目(纯Java项目) + Web端项目(Java Web项目)
EJB端用来编写SessionBean与EntityBean,Web端来调用SessionBean操作EntityBean,总的项目用来将EJB端项目与Web端项目整合到一起。
一、使用MyEclipse开发简单SessionBean项目
1、建立项目
注意一定要选择到JavaEE5.0版本,否则无法完成后面的开发
此处建立SessionBean项目,不用选择。
单击Finish后,自动创建了三个项目。
2、在EJB项目中建立SessionBean
在EJBSessionBeanDemoEJB的src中上右键à new à EJB3 Session Bean
package org.mldn.lin.session; import javax.ejb.Remote; //该Annotation表示该接口为一个EJB3远程接口 @Remote public interface HelloDAORemote { public String sayHello(String name) throws Exception; } |
package org.mldn.lin.session; import javax.ejb.Stateless; //该Annotation表示该类为一个无状态SessionBean @Stateless public class HelloDAO implements HelloDAORemote { public String sayHello(String name) throws Exception { // TODO Auto-generated method stub return "Hello World! " + name; } } |
3、EJB项目部署
只能部署到JBoss服务器中,不能部署到Tomcat服务器中
发布的接口被发布到公共的JNDI空间中,要查找需要通过JBoss控制台页面找到公共的空间.
打开JBoss公共页面
默认为8080,则访问公共页需要通过该地址访问
修改了端口号为80,IE浏览器默认端口号为80,则可以通过该地址访问
点击jmx-console打开JBoss控制台,
在JBoss控制台页面查找service=JNDIView
打开公共的JNDI空间
点Invoke执行列表显示JNDI的功能
在Global JNDI Namespace中查找到发布的远程接口
4、在Web端项目中建立一个测试类
package org.mldn.lin.test;
import java.util.Properties;
import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException;
import org.mldn.lin.session.HelloDAORemote;
public class Test {
public static void main(String[] args) { // TODO Auto-generated method stub // 定义查找参数,通过定义这些参数找到该公共空间 Properties pro = new Properties(); pro.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); pro.setProperty("java.naming.provider.url", "192.168.1.187:1099"); pro.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); // 通过JNDI查找发布的接口 try { Context ctx = new InitialContext(pro);
// 开始查找接口 HelloDAORemote hellodao = (HelloDAORemote) ctx.lookup("HelloDAO/remote");
// 打印结果 System.out.println(hellodao.sayHello("Lin"));
} catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
}
}
|
5、运行测试
报错:
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) |
注意:
如果通过测试类进行测试,需要添加一个支持类jar包
该jar包可以在在JBoss服务器client目录下找到,将 拷贝到lib下即可
6、在Web端项目中建立一个页面进行测试
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="javax.naming.Context,javax.naming.InitialContext,javax.naming.NamingException,org.mldn.lin.session.HelloDAORemote" %>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head>
<body> <% // TODO Auto-generated method stub // 定义查找参数,通过定义这些参数找到该公共空间 Properties pro = new Properties(); pro.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); pro.setProperty("java.naming.provider.url", "192.168.1.187:1099"); pro.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); // 通过JNDI查找发布的接口 try { Context ctx = new InitialContext(pro);
// 开始查找接口 HelloDAORemote hellodao = (HelloDAORemote) ctx .lookup("HelloDAO/remote");
// 打印结果 out.println(hellodao.sayHello("Lin"));
} catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } %> </body> </html>
|
7、项目部署
(1)同时部署EJB和Web项目
注意:如果是要部署Web项目,则在lib中不能单独加入
否则jar包冲突
访问http://192.168.1.187/EJBSessionBeanDemoWeb/检验结果
(2)整个部署总的项目
如果使用整个部署的形式,则不能再单独部署两个项目,而且需要修改一些代码
并且发现发布的服务有变化:
在部署整个项目后,发现发布的SessionBean的名称多了一个项目名,因此需要修改lookup中的参数,加入项目名称
// 开始查找接口 HelloDAORemote hellodao = (HelloDAORemote) ctx.lookup("EJBSessionBeanDemo/HelloDAO/remote"); |
发表评论
-
本小姐回来啦 —— 超级感谢MLDN
2009-08-10 13:24 1616我又回来了!哈哈,报告一个好消息,我已经成功入职博彦科 ... -
现在开始积极的找工作
2009-07-05 19:13 1189学习差不多了,得赶在毕业前找到一个工作啊,本小姐这段时 ... -
素质教育 —— 模拟面试
2009-06-30 19:10 1071今天一天都安排了职业素质的培养,包括简历的指导、技术面 ... -
EJB实体Bean开发的复合主键映射
2009-06-29 21:36 1699复合主键的映射:在Hibernate中是通过一个主键类来完成复 ... -
EJB实体Bean开发
2009-06-29 21:33 1000EJB实体Bean开发的数据库连接采用数据源连接池的方式,因此 ... -
JBoss服务器配置
2009-06-25 21:21 2087哦,哦,哦,EJB的准备课程啊。 这里开发使用的是 JB ... -
Spring结合iBATIS进行开发
2009-06-25 21:19 988使用Spring管理iBATIS完全可以参照Spring+Hi ... -
ibatis开发框架
2009-06-25 21:17 1286iBATIS为一个ORMapping框架,可以帮助开发人员完成 ... -
WebService分布式开发
2009-06-24 22:23 1917WebService:用来跨语言传递数据。 数据交互是通过XM ... -
北京下雨了
2009-06-18 19:56 779上次在公交车上,听到电视里放《北京下雨了》,那么北京今天 ... -
JQuery
2009-06-10 21:03 12771、JQuery的基本语法 ... -
AJAX中使用JSON
2009-06-10 21:02 1309在Java开发中,如果要使用JSON进行开发,需要一些支持,这 ... -
AJAX框架 —— JSON基本知识
2009-06-10 21:01 960我真想知道这年头到底有多少种框架。 1、JSON ... -
还应该多帮助同学,才能让自己进步快
2009-06-08 21:57 1012今天对于本小姐来讲还真是相对轻松的一天啊,上周完成了任 ... -
业务、业务、业务。。。
2009-06-03 18:41 1159项目就是业务,项目中都是业务,技术就这么点东西,只要把 ... -
IBM Project 继续中ing....
2009-06-02 19:08 886项目就是要坚持的做下去,而且要想到做到最好,虽然框架很好 ... -
实际开发了
2009-06-01 18:17 901今天开始新的项目了,项目老师帮我们搭建好了SVN服务器, ... -
web学习笔记 —— 数据源
2009-05-31 19:56 1042使用数据源可以提升数据库的操作性能,当然,不管使用与否,对于程 ... -
SSH(Spring + Struts + Hibernate)
2009-05-31 19:47 2504Spring结合Hibernate ... -
Spring中的控制反转(IOC)
2009-05-30 16:29 784什么控制反转,还弄了一个新名词 —— ioc,说白了就 ...
相关推荐
在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...
EJB3.0作为EJB规范的重大改进,旨在简化开发流程并提高开发者效率。本文将详细探讨EJB3.0与EJB2.0之间的主要差异。 首先,EJB3.0对编程模型进行了简化。在EJB2.0中,每个EJB需要定义两个接口和一个Bean实现类,这在...
EJB(Enterprise JavaBeans)3.0是Java企业级应用开发的一个重要标准,它定义了如何在Java EE(Java Platform, Enterprise Edition)环境中构建可复用的、组件化的服务器端应用程序。EJB 3.0的发布极大地简化了EJB的...
《EJB3.0入门经典》是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发...
《精通EJB3.0》是一本深入探讨企业级JavaBeans(EJB)3.0技术的专业书籍,由Rima Patel、Sriganesh、Gerald Brose和Micah Silverman共同编写,由Wiley Publishing出版。该书为读者提供了全面且深入的EJB3.0知识体系...
首先,我们来看《EJB3.0开发Entity.pdf》。在EJB 3.0中,Entity Bean代表持久化对象,它存储在数据库中并与数据库进行交互。这个部分将介绍如何定义实体bean,包括使用JPA(Java Persistence API)来注解实体类,...
在"ejb3.0入门经典教程-source"这个压缩包中,包含了书中各个章节的示例代码,覆盖了EJB 3.0的各个方面,例如实体Bean的创建、会话Bean的使用、事务管理、安全性设置以及JPA的持久化操作等。这些源码对于初学者来说...
**企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式企业级应用的重要组件模型。EJB 3.0是EJB规范的一个重大革新,它极大地简化了EJB的开发过程,引入...
### Java之精通EJB3.0 #### 一、EJB3.0简介与改进 企业Java Beans(Enterprise JavaBeans,简称EJB)是Java平台为企业级应用开发提供的一种组件模型。EJB3.0是EJB规范的一个重大版本更新,它在EJB2.0的基础上进行...
在"**EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程).txt**"文件中,你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在...
"李腾飞EJB3.0 源码 源代码"可能包含的是李腾飞教授或团队关于EJB 3.0技术的实践示例或教学资源。通过分析这些源码,开发者可以深入理解EJB 3.0的实现细节,例如如何使用注解定义Bean、如何处理持久化、如何进行依赖...
罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...
EJB(Enterprise JavaBeans)3.0规范是Java EE(Enterprise Edition)平台中核心的组件模型,用于构建可扩展、安全且易于管理的企业级应用程序。EJB 3.0是EJB规范的一个重要里程碑,因为它引入了许多重大的改进,...
罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...
### EJB2.0与EJB3.0的主要区别 #### 一、简介 企业Java Beans(EJB)是Java平台为企业级应用提供的一种组件模型。随着技术的发展,EJB经历了多个版本的迭代,其中EJB 2.0和EJB 3.0是两个重要的里程碑版本。本文将...
EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了大量简化,提高了开发效率,并引入了注解驱动的开发方式,使得EJB更易于理解和使用。 在EJB3.0中,主要包含以下关键知识点: 1. **实体Bean(Entity ...
**EJB3.0实例教程**是一份详细指导开发者如何使用Enterprise JavaBeans 3.0(EJB3.0)技术进行企业级应用开发的电子文档。EJB3.0是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化企业级组件的...
**企业级JavaBeans (EJB) 3.0 规范** EJB 3.0是Java Enterprise Edition (Java EE)中的一个关键组件,它定义了如何在服务器端创建可复用、模块化的业务组件。这个规范的主要目标是简化EJB的开发过程,使其更加轻量...
总的来说,"EJB3.0源代码"的压缩包很可能包含了使用EJB 3.0规范编写的各类Bean的源码,包括实体Bean、无状态会话Bean、有状态会话Bean和消息驱动Bean,以及相关的配置文件。通过分析这些源代码,我们可以深入理解EJB...
### 精通EJB3.0经典书目解析 #### 一、书籍基本信息 - **书名**:《精通企业级Java Beans (EJB) 3.0》 - **作者**:Rima Patel Sriganesh, Gerald Brose, Micah Silverman - **出版社**:Wiley Publishing, Inc. -...