WEB应用及其部署文件
板桥里人 https://www.jdon.com 2002/06/30
EJB建立部署完毕后,需要应用程序去调用EJB,在Interest例子中,是使用Web应用去调用:
1.home.html 表单
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 
                          Transitional//EN"> //提交form后, 调用InterestServlet | 
2.InterestServlet
| package org.jboss.docs.interest; import java.io.IOException; 
 /**     //获得一个远程的EJB EJB2.0里,这里可优化成调用本地EJB  /** //以上是定义html输出    try     // call the calculateCompoundInterest() method 
                          to do the calculation  private double getValue(String name, double defaultValue, 
                          HttpServletRequest request) | 
3.web.xml Web应用的配置文件
本例的web.xml是
| <?xml version="1.0" encoding="ISO-8859-1"?>  //可以定义首页的文件名 如index.html <!-- ### EJB References (java:comp/env/ejb) --> </web-app> | 
一般Web.xml基本可以包括部署web应用的各个方面,但是一个问题是,不能加入具体J2EE服务器软件产品的特定配置信息.这就需要JBoss-web.xml

上图基本描述了JBoss-web.xml的内容组成.
在上面的web.xml中 已经定义一个ejb-ref 其中ejb-ref-name是ejb/Interest
那么需要在JBoss中,将ejb-ref-name和jndi-name梆定.看看本例中的JBoss-web.xml
| <?xml version="1.0" encoding="UTF-8"?> <jboss-web> | 
注意Web.xml中ejb-ref有两种类型:internal(内部) 和external(外部)
internal(内部): Servlet和Ejb是被物理的(实实在在的)封装在一个ear包中.你必须提供一个<ejb-link>, 它的值必须匹配对应EJB的<ejb-name>的值. 这样,你就不必使用jboss-web.xml 配置文件了,没有这个jboss-web.xml也没有关系.
这种情况仅仅工作在缺省的梆定情况,所谓缺省的梆定情况在上节中提到:
"JNDI name将使用在ejb-jar.xml中<ejb-name>XXX</ejb-name>中的XXX来使用EJB的home interface. "
external(外部):如果EJB在另外一个应用系统单元:也就是说可能部署在另外一台服务器上,或者就是在同一个应用系统单元,但是一个非缺省的梆定情况.
本例中是使用external方式.具体这两个方式详细描述见 http://www.jboss.org/online-manual/HTML/ch07s22.html