EJB学习一 Ejb介绍与环境搭建(JBoss的安装以及JBoss启动报错IllegalArgumentException的解决)

来源:互联网 发布:淘宝怎么玩的 编辑:程序博客网 时间:2024/05/22 12:24
公司中要用到EJB,开始恶补,从网上找了很多资料,发现只有几个很适合入门
一个是EJB3.0实例教程下载
还有一个是传智播客的视频,这里提供EJB视频下载
不想看视频的人,可以根据我的blog进行学习,这几天学EJB,比较紧张,哦也是一只菜鸟,努力更新...我会把每天的学习尽量更新到blog中


EJB3.0企业开发   
        EJB(Enterprice JavaBeans)是一个用于分布式业务应用的标准服务端组件模型。在实际开发中,主要是针对于业务层的开发。在JavaBean中,我们需要手动进行事务管理,安全服务的编写;而EJB为我们提供的事务管理/安全/持久化等,是由容器提供,无需我们自行开发,大大减少了我们的开发量,提高开发效率。
       spring+hibernate同样提供了事务管理/持久化等服务,并且很多服务比起ejb更加细致。但ejb主要是用于分布式场合的,而Spring不是针对分布式开发,偏重点不一样。ejb更加适合于大型企业,多个存在相互关联的信息系统中,为了避免业务功能的重复开发,实现最大程度的重用,有必要将业务层独立出来,让多个信息系统共享一个业务中心,这样应用就需要具有分布式能力


EJB3.0分布式特点


EJB实际上就是将业务逻辑层单独抽取出来,从而实现代码的复用,方便后期维护


例如:两个系统中存在同样的功能,当功能需要发生改变的时候,我们只需要更改公用的业务层即可,方便程序的维护



EJB3.0运行环境
1.首先必不可少的是jdk,需要jdk1.5以上版本
1.1 下载jdk,解压安装之后,配置jdk环境变量JAVA_HOME
在环境变量配置中添加JAVA_HOME变量,值为JDK的安装路径,如:E:\classpath\jdk1.7.0_15
1.2 配置CLASSPATH
在CLASSPATH中添加 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;    (注意是".;",英文中的句号)
1.3 在PATH的选项中,末尾添加   ;%JAVA_HOME%\bin;
2.安装JBOSS服务器
下载地址http://sourceforge.net/projects/jboss/files/JBoss/
jboss-5.1.0.GA-jdk6.zip直接解压即可。(注意:不要中文目录,不要有空格,否则会报各种莫名其妙的错误)

配置环境变量,添加JBOSS_HOME变量,值为Jboss的安装路径

为了方便后期输入jboss的命令,将jboss的bin目录添加到系统路径中。即在环境变量Path后面追加 ;%JBOSS_HOME%\bin;

验证是否安装成功:
方式一:DOS命令窗口移动到E:\javaexe\jboss-eclipse\jboss-5.1.0.GA\bin\        编写run -c all


方式二:直接到E:\javaexe\jboss-eclipse\jboss-5.1.0.GA\bin目录下,双击运行run.bat

当运行结果中无例外(都是info),并且出现如下提示

时,在浏览器中访问localhost:8080(默认为8080端口),出现


表示启动成功。

但是,我的JBoss5.1出现如下错误
IllegalArgumentException
ERROR [AbstractKernelController] Error installing to Instantiated: name=AttachmentStore state=Describedjava.lang.IllegalArgumentException: Wrong arguments. new for target java.lang.reflect.]Constructor expected=[java.net.URI] actual=[java.io.File]....


解决方法:
找到: jboss-5.1.0.GA\server\default\conf\bootstrap,打开文件 profile.xml

在文件中找到:
<bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">        <constructor><parameter>            <inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" /></parameter>      </constructor> 

修改为
<bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">         <constructor><parameter class="java.io.File">           <inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" /></parameter>       </constructor> 
重启JBoss即可



环境搭建完成!!

另:
EJB的三种bean
1.会话bean(session bean)
负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过jdbc直接操作数据库,但大多数情况下都是通过实体bean来完成对数据库的操作

2.实体bean(entity bean)
它实际属于java持久化规范(简称JPA)里的技术,JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate、TopLink的那个ORM框架各自为营的局面

3.消息驱动bean(message-driven bean)
专门用于异步处理Java消息的组件,具有处理大量并发消息的能力


0 0