JavaEE5学习笔记07-Web层与EJB集成总结(5):异常问题以及解决

Web系统和EJB整合的过程中,比较麻烦的经历就是打包、部署了。搞不好就会报出异常信息。如果想让web顺利调用EJB组件,必须将web项目、ejb项目分别导出相关的包,之后再结合起来形成一个EAR包,应用服务器认识这个东西,和部署一般的EJB组件(打成jar)一样,将ear包丢到${JBOSS_HOME} \server\default\deploy下面即可。ear的结构是:

10——nwar包(web项目)

20——njar包(EJB组件类)

3META-INF文件夹:里面是application.xml文件,该文件描述了warjar的部署信息。

我的myear.ear内容如下

 

META-INF里面的application.xml内容如下

<?xml version="1.0" encoding="UTF-8"?>

<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">

  <display-name>ear</display-name>

  <module id="myeclipse.1298296534181">

    <web>

      <web-uri>JavaEE4StrutsEJB.war</web-uri>

      <context-root>/JavaEE4StrutsEJB</context-root>

    </web>

  </module>

  <module id="myeclipse.1296557119812">

    <web>

      <web-uri>JavaEE4Jboss.war</web-uri>

      <context-root>/JavaEE4Jboss</context-root>

    </web>

  </module>

  <module id="myeclipse.1298296534571">

    <ejb>earEJB.jar</ejb>

  </module>

</application>

红色字体是描述web项目的war部署情况,蓝色字体描述的是EJB组件的部署jar包。有了这个配置文件,应用服务器就会根据这个配置文件部署相关组件块。注:很多人使用MyEclipse集成JBoss,直接将web项目发布到JBoss上面(就像之前做Web项目发布到Tomcat上面似的),实际上在JavaEE6标准下,支持此标准的应用服务器(比如JBoss6就已经支持了)是可以如此部署的,实际上JavaEE6在部署上更简单了,一个war里面包含EJB组件,在应用服务器上就可以直接部署此EJB组件。

MyEclipse中打ear包的步骤大致如下:

1,建立一个Enterprise Application Project;

 

2,选择新建空的EJB组件项目和新建空web项目此处只是方便打包项目后的application.xml内容生成,并没其他的含义;

3,选中Enterprise Application Project项目导出ear;

 

4,将自己的web项目导出war;

5,EJB组件项目导出jar;

6,rar方式打开ear包,将刚才生成的war包和jar包拷贝到此ear下面,按实际情况修改一下META-INF/application.xml里面的内容;

7,将此ear部署到JBoss下面,重启服务器,即完成了部署。

这里还要罗嗦一句就是在打包的时候一定记住war包中绝对不能包含任何EJB组件类,否则,在EJB组件注入的时候会发生

javax.ejb.EJBException: java.lang.IllegalArgumentException: Wrong target. class异常。一般是将war包中的关于EJB组建的class类直接删除掉再放入到ear包中。而EJB组件中包含web层的类倒是没什么关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值