码迷,mamicode.com
首页 > 其他好文 > 详细

JBoss+Ant实现EJB无状态会话bean实例

时间:2014-12-18 13:38:05      阅读:162      评论:0      收藏:0      [点我收藏+]

标签: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 {

	@Override
	public 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实例

标签:jboss   ant   ejb   

原文地址:http://blog.csdn.net/quwenzhe/article/details/42003005

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!