手工创建、部署EJB ——在支持热部署的Jboss环境下
1.运行环境如下 l jdk-1_5_0_06-windows-i586-p.exe,已经安装,且能够正常编译和执行java程序 l jboss-4.0.0已经安装且正常启动
2.首先创建文件夹efirstEJB/ejb,在其中书写如下三个文件,均放入ejb包内远程接口
package ejb; //本接口需要引入的类或接口
import javax.ejb.EJBObject;
import java.rmi.RemoteException; //定义远程接口,必须继承EJBObject
public interface Hello extends EJBObject { //定义业务逻辑方法
public String sayHello() throws RemoteException;
}
本地接口
package ejb; //本接口需要引入的类或接口
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome; //定义主接口,必须继承EJBHome
public interface HelloHome extends EJBHome { //定义EJB创建方法
Hello create() throws CreateException, RemoteException;
}
Bean实现
package ejb; //本类需要引入的类或接口
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext; //实现业务逻辑,必须实现SessionBean接口
public class HelloBean implements SessionBean { //这是个会话EJB,声明会话上下文
private SessionContext ctx; //声明字符串
private String words; //接口SessionBean中定义的方法,必须实现
public void setSessionContext(SessionContext ctx) { this.ctx = ctx; } //接口SessionBean中定义的方法,必须实现
public void ejbActivate() { } //接口SessionBean中定义的方法,必须实现
public void ejbPassivate() { } //接口SessionBean中定义的方法,必须实现
public void ejbRemove() { } //和主接口定义对应的方法,必须实现
public void ejbCreate() throws CreateException { words = "Hello World"; } //供客户端调用的业务逻辑方法,这里只简单的打印字符串,并把字符串返回到客户端
public String sayHello() {
System.out.println("I am in an EJB of Server ."+words);
return words; }
}
3. 创建文件夹firstEJB/META-INF,在其中书写如下两个文件 ejb-jar.xml(标准的EJB部署文件)
Generated by XDoclet Name for Fibo Hello ejb.HelloHome ejb.Hello ejb.HelloBean Stateless Container jboss.xml(特定于Jboss的部署文件) Hello ejb/Hello
4. 编译所有的java文件 l 设置环境变量classpath至少含如下文件: %JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar;%JBOSS_HOME%/server/default/lib/jboss-j2ee.jar; l 执行编译命令 D:/firstEJB>javac ejb/*.java
5. 打包成JAR文件执行打包命令 D:/firstEJB>jar -cf my-ejb.jar META-INF ejb/*.class 打包后包结构如图:
6. 部署EJB l 启Jboss F:/jboss400/bin>run.bat l 复制EJB文件,执行命令D:/firstEJB>copy my-ejb.jar F:/jboss400/server/default/deploy l 察看Jboss运行窗口可以看到如下内容,表明成功部署了my-ejb.jar 11:32:44,812 INFO [EjbModule] Deploying Hello 11:32:45,203 INFO [EJBDeployer] Deployed: file:/F:/jboss400/server/default/depl oy/my-ejb.jar