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