`
suhuanzheng7784877
  • 浏览: 691860 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47248
社区版块
存档分类
最新评论

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层的类倒是没什么关系。

  • 大小: 55.7 KB
  • 大小: 73.4 KB
  • 大小: 45 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics