jar cvf MyApplication.ear ejbs resources web lib META-INF
创建好EAR文件之后,我们就可以把J2EE应用部署到应用服务器上。
1.3 EAR部署描述器
理想情况下,我们用图形界面的工具编写application.xml文件。然而,有时我们必须手工构造或维护application.xml文件,因此理解application.xml文件用到的标记很重要。
application.xml部署描述器并不复杂,不需要很多标记就可以构造出一个合法的描述器。部署描述器的DTD定义的标记包括:
所有合法的J2EE应用描述器必须包含如下DOCTYPE声明:
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
配置一个简单的application.xml部署描述器只需如下几步: 用标记声明一个企业应用。标记可以包含、和标记,供部署工具提供有关应用的描述信息使用。这些标记的内容和EJB、Web应用、资源适配器部署描述器内的同一标记的内容相同。
企业应用内的每一个模块必须有一个相应的标记描述模块。EJB用标记描述,Web应用用标记描述,资源适配器用标记描述,应用客户端程序用标记描述。除了标记之外,其他标记的内容都是指定EAR文件内包含J2EE模块的文件的相对URI,该URI必须相对于EAR文件的根。
如果企业应用包含一个Web应用J2EE模块,则必须提供一个标记和一个标记。标记是一个相对URI,指定EAR文件内包含J2EE模块的文件。这个URI和、、标记的URI同属一类。标记指定Web应用将在其下运行的上下文的名字。所有针对该Web应用内JSP页面和Servlet的请求都必须加上该上下文名字作为前缀。例如,如果部署Web应用时指定了:
<context-root>web1</context-root>
则所有对JSP页面和Servlet的请求必须是如下形式:
http://主机:端口/web1/......
在EAR文件内封装的每一个Web应用都要有一个唯一的值,任何两个Web应用不能有相同的值。如果EAR文件只包含一个Web应用,的值可以是空字符串。
二、一个简单的实例
在大多数使用EAR文件的情形中,企业应用包含一个EJB模块、一个Web应用模块,Web应用要用到EJB模块里面的EJB组件。下面的例子就属于这种情况,EJB和Web应用不需要任何依赖库。下面我们来看看构造这个例子的具体过程。
2.1 组件
在这个例子中,一个Servlet在无状态会话EJB的远程接口上调用invoke()方法,Servlet和EJB输出一些文字信息表明程序已经成功执行。如果控制台出现异常报告,它很可能意味着组件封装存在问题。本例的所有EJB源文件都属于test包,Servlet属于未命名的包。本例用到的Java文件包括:
MyEnterpriseServlet.java:Servlet的实现类,执行对EJB的调用 MyEnterprise.java:EJB的远程接口。 MyEnterpriseHome.java:EJB的Home接口。 MyEnterpriseBean.java::EJB的实现类。
MyEnterpriseBean.java的实现代码是:
quote: --------------------------------------------------------------------------------
package test; import javax.ejb.*; public class MyEnterpriseBean implements SessionBean {
private InitialContext ctx;
public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext c) {} 上一页 [1] [2] [3] [4] [5] 下一页
|