JBOSS学习EJB笔记一

来源:互联网 发布:淘宝头像图片大全 编辑:程序博客网 时间:2024/05/26 19:17

            首先是安装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.