標籤:jboss ant ejb
EJB分為session bean、entity bean、message-driven bean,session bean又分為無狀態會話bean和有狀態會話bean。
session bean負責與用戶端互動,是編寫商務邏輯的地方,在session bean中可以通過jdbc直接操作資料庫,但大多數情況下都是通過entity bean來完成對資料庫的操作的。
平常,我們使用最多的是無狀態bean,因為它的bean執行個體可供多個使用者使用,所以它的效能比有狀態bean高。正因為一個bean執行個體被多個使用者使用。那麼,前一個使用者佈建的值有可能被後一個使用者所修改,所以它無法正確儲存某個使用者佈建的值,因為是無狀態的。下面用一個JBoss+Ant實現EJB無狀態會話bean執行個體,協助大家初步認識EJB。
1.建立一個普通的java項目,建立時引用jboss-4.2.3.GA\client目錄下的所有jar包;
2.建立一個HelloWorld介面;
package cn.tgb.ejb3;public interface HelloWorld {public String sayHelloWorld(String name);}
3.建立一個實現HelloWorld介面的實作類別;
package cn.tgb.ejb3.impl;import javax.ejb.Remote;import javax.ejb.Stateless;import cn.tgb.ejb3.HelloWorld;@Stateless@Remote(HelloWorld.class)public class HelloWorldBean implements HelloWorld {@Overridepublic String sayHelloWorld(String name) {return name + "說:你好,世界!";}} 在HelloWorldBean類中,我們用註解Stateless註明當前類是無狀態的,用註解Remote註明當前類對外提供的遠端存取介面。
4.在項目的src目錄下建立build.xml檔案,用Ant管理項目的構建過程;
<?xml version="1.0" encoding="UTF-8"?><project name="HelloWorld" basedir="."><property name="src.dir" value="${basedir}/src" /><property name="build.dir" value="${basedir}/build" /><property environment="env" /><property name="jboss.home" value="${env.JBOSS_HOME}" /><property name="jboss.server.config" value="default" /><path id="build.classpath"><fileset dir="${jboss.home}/client"><include name="*.jar" /></fileset></path><target name="prepare"><delete dir="${build.dir}" /><mkdir dir="${build.dir}" /></target><target name="compile" depends="prepare" description="編譯EJB工程"><javac srcdir="${src.dir}" destdir="${build.dir}"><classpath refid="build.classpath" /></javac></target><target name="ejbjar" depends="compile" description="EJB工程打包"><jar jarfile="${basedir}/${ant.project.name}.jar"><fileset dir="${build.dir}"><include name="**/*.class" /></fileset></jar></target><target name="deploy" depends="ejbjar" description="發布EJB工程"><copy file="${basedir}/${ant.project.name}.jar" todir="${jboss.home}/server/${jboss.server.config}/deploy" /></target><target name="undeploy" description="卸載EJB"><delete file="${jboss.home}/server/${jboss.server.config}/deploy/${ant.project.name}.jar" /></target></project> 5.在eclipse的Outline視窗選中deploy,右鍵run as Ant build,執行此操作後,Ant會在當前項目根目錄和jboss-4.2.3.GA\server\default\deploy目錄產生項目的jar檔案;
6.啟動JBoss伺服器;
7.在其它項目中通過JNDI調用EJB無狀態會話bean提供的方法;
package com.tgb.test;import java.util.Properties;import javax.naming.InitialContext;import javax.naming.NamingException;import cn.tgb.ejb3.HelloWorld;public class EJBClient {public static void main(String[] args) {Properties props = new Properties();props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");props.setProperty("java.naming.provider.url", "localhost:1099");props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");try {InitialContext ctx = new InitialContext(props);HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");System.out.println(helloworld.sayHelloWorld("北京"));} catch (NamingException e) {System.out.println(e.getMessage());}}} 到此,我們完成了EJB無狀態會話bean的執行個體建立過程,希望能協助大家進步。
JBoss+Ant實現EJB無狀態會話bean執行個體