您的位置:首页 > 其它

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

2013-12-10 22:15 639 查看
公司中要用到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=Described
java.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消息的组件,具有处理大量并发消息的能力
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐