JBoss+Ant实现EJB无状态会话bean实例
2017-06-14 09:34
501 查看
EJB分为session bean、entity bean、message-driven bean,session bean又分为无状态会话bean和有状态会话bean。
session bean负责与client交互,是编写业务逻辑的地方。在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接口;
3.创建一个实现HelloWorld接口的实现类。
4.在项目的src文件夹下新建build.xml文件。用Ant管理项目的构建过程;
6.启动JBossserver;
7.在其他项目中通过JNDI调用EJB无状态会话bean提供的方法;
session bean负责与client交互,是编写业务逻辑的地方。在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.启动JBossserver;
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无状态会话bean实例
- Eclipse3.2.1+jboss4.0.5开发J2EE中的EJB(无状态会话Bean 附图)
- Ejb in action(四)——购物车实例演示有状态会话Bean
- Ejb in action(四)——购物车实例演示有状态会话Bean
- Eclipse3.1.1+jboss4.0.5开发J2EE中的EJB(无状态会话Bean)
- Eclipse3.2.1+jboss4.0.5开发J2EE中的EJB (有状态会话Bean 附图)一
- EJB-无状态会话Bean实例+与状态bean区别
- Eclipse3.2.1+jboss4.0.5开发J2EE中的EJB (有状态会话Bean 附图)二
- win2k环境下基于JBOSS的J2EE开发实践----之三、有状态会话 Bean的开发及多种调用有状态会话Bean方法的实现
- JBoss下的EJB3开发无状态会话Bean
- EJB3.0开发指南:有状态会话Bean
- EJB——无状态会话Bean的home接口_hotelhome.java
- EJB中有状态会话Bean与无状态会话Bean
- 使用Mutex实现会话状态下单实例运行和系统范围内单实例运行
- EJB——无状态会话Bean的Remote远程接口_hotel.java
- 传智播客-ejb3(2)-bean类型、jboss基本应用、本地组件和远程组件及其底层实现原理简介
- [原创]EJB循序渐进,手把手创建简单的无状态会话BEAN
- EJB中有状态会话Bean 和 无状态会话Bean 的区别
- 传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean