首先是安装Jboss,自己去网上下载一个,安装在c盘的目录下(建议不要安装在program files目录下)我的目录是C:/jboss,然后是配置环境变量(这个在哪里配置就不用我多说了),JBOSS_HOME 配置成C:/jboss,配置后,在控制台下进入JBOSS_HOME目录的bin目录下,运行 run -c all (这里说明一下,在安装JBOSS的时候,我选的是all有的可能选的是default ,选default的就运行run -c default ),看看启动有没有报错,启动后,在浏览器输入:http://localhost:8080/ 如果能看到JBOSS的主页面,说明配置成功。
配置好JBOSS后,我们来配置编译器,我这里选择MyEclipse, 首先我们要在MyEclipse 上配置JBOSS服务器,这个配置和tomcat的配置一样,这里不再说了。
配置好后,我们就可以来写EJB了。
其实EJB的基本原理和RMI的很像, 首先我从一个简单的HelloWrold程序开始,我们在MyEclipse 新建一个EJB工程,建一个ebj3包, 在这个包里写一个接口
public interface HelloWorld {
public String SayHello(String name);
}
再建一个ejb3.impl包,在这个包里,写一个类实现这个接口
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote ({HelloWorld.class})
public class HelloWorldBean implements HelloWorld {
public String SayHello(String name) {
return name +"say:Hello ,It is my first ejb3 program.";
}
}
写好后,我们将这个工程打包成jar,我这里用ANT打包 Ant的build.xml文件我这里贴一下
<?xml version="1.0"?>
<!-- ======================================================================= -->
<!-- EJB3 HelloWorld build file -->
<!-- ======================================================================= -->
<project name="HelloWorld" default="ejbjar" basedir="..">
<property environment="env" />
<property name="app.dir" value="${basedir}/HelloWorld" />
<property name="src.dir" value="${app.dir}/src" />
<property name="jboss.home" value="${env.JBOSS_HOME}" />
<property name="jboss.server.config" value="default" />
<property name="build.dir" value="${app.dir}/build" />
<property name="build.classes.dir" value="${build.dir}/classes" />
<!-- Build classpath -->
<path id="build.classpath">
<fileset dir="${jboss.home}/client">
<include name="*.jar" />
</fileset>
<pathelement location="${build.classes.dir}" />
</path>
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
<target name="prepare" depends="clean">
<mkdir dir="${build.dir}" />
<mkdir dir="${build.classes.dir}" />
</target>
<!-- =================================================================== -->
<!-- Compiles the source code -->
<!-- =================================================================== -->
<target name="compile" depends="prepare" description="编绎">
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="com/**">
<classpath refid="build.classpath" />
</javac>
</target>
<target name="ejbjar" depends="compile" description="创建EJB发布包">
<jar jarfile="${app.dir}/HelloWorld.jar">
<fileset dir="${build.classes.dir}">
<include name="com/**/*.class" />
</fileset>
</jar>
</target>
<target name="deploy" depends="ejbjar">
<copy file="${app.dir}/HelloWorld.jar" todir="${jboss.home}/server/${jboss.server.config}/deploy" />
</target>
<!-- =================================================================== -->
<!-- Cleans up generated stuff -->
<!-- =================================================================== -->
<target name="clean">
<delete dir="${build.dir}" />
<delete file="${jboss.home}/server/${jboss.server.config}/deploy/HelloWorld.jar" />
</target>
</project>
打包后,将其拷贝到JBoss的JBOSS_HOME/server/all/deploy目录下
接下来,我们来写一个条用这个EJB的项目,我们新建一个普通的web 项目EJBTest
在工程里面建一个页面hello.jsp如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="com.foshanshop.ejb3.HelloWorld, javax.naming.*, java.util.Properties"%>
<%
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
try {
InitialContext ctx = new InitialContext(props);
HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
out.println(helloworld.SayHello("zxjllz405"));
} catch (NamingException e) {
out.println(e.getMessage());
}
%>
用Ant将这个工程打包,打包后将其拷贝到:JBOSS_HOME/server/all/deploy目录下,然后启动JBOSS,浏览器输入:http://localhost:8080/EJBTest/hello.jsp
你就可以看到zxjllz405 say:Hello ,It is my first ejb3 program.