在所有的ejb3.0规范中定义的ejb,都不必实现home接口。
一个会话bean必须有一个业务接口,这个接口由会话bean来实现,或者也可以由会话bean来产生。这样,你可以只写一个文件,就可以生成业务逻辑实现类、远程接口、本地接口等。
| … @remote @local @stateless public class counterbean { …… } |
| counter.java package com.kuaff.ejb3.stateless; import javax.ejb.remote; @remote public interface counter { public int add(int i); public int getnumber(); } |
| counterbean.java package com.kuaff.ejb3.stateless; import javax.ejb.stateless; @stateless public class counterbean implements counter { private int number = 0; //给计数器加上i public int add(int i) { number += i; return number; } //得到当前的计数 public int getnumber() { return number; } } |
| client.java package com.kuaff.ejb3.stateless; import javax.naming.initialcontext; import javax.naming.namingexception; public class client { public static void main(string[] args) { initialcontext ctx; try ctx = new initialcontext(); counter counter = (counter) ctx.lookup(counter.class.getname()); counter.add(10); system.out.println("当前的number:" + counter.getnumber()); counter.add(10); system.out.println("当前的number:" + counter.getnumber()); counter counter2 = (counter) ctx.lookup(counter.class.getname()); counter2.add(10); system.out.println("当前的number:" + counter2.getnumber()); catch (namingexception e) { e.printstacktrace(); } } } |
| jndi.properties java.naming.factory.initial=org.jnp.interfaces.namingcontextfactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=localhost |
| <project name="kuaff_ejb3_tutorial" default="ejbjar" basedir="."> <property environment="env"/> <property name="src.dir" value="${basedir}/src"/> <property name="jboss.home" value="${env.jboss_home}"/> <property name="build.dir" value="${basedir}/build"/> <property name="build.classes.dir" value="${build.dir}/classes"/> <path id="classpath"> <fileset dir="${jboss.home}/lib"> <include name="**/*.jar"/> </fileset> <fileset dir="${jboss.home}/server/all/lib"> <include name="**/*.jar"/> </fileset> <fileset dir="${jboss.home}/server/all/deploy/ejb3.deployer"> <include name="*.jar"/> </fileset> <fileset dir="${jboss.home}/server/all/deploy/jboss-aop.deployer"> <include name="*.jar"/> </fileset> <pathelement location="${build.classes.dir}"/> <pathelement location="${basedir}"/> </path> <property name="build.classpath" refid="classpath"/> <target name="prepare"> <mkdir dir="${build.dir}"/> <mkdir dir="${build.classes.dir}"/> </target> <target name="compile" depends="prepare"> <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="**"> <classpath refid="classpath"/> </javac> </target> <target name="ejbjar" depends="compile"> <jar jarfile="build/statelesssample.ejb3"> <fileset dir="${build.classes.dir}"> <include name="**/*.class"/> </fileset> </jar> <copy file="build/statelesssample.ejb3" todir="${jboss.home}/server/all/deploy"/> </target> <target name="run" depends="ejbjar"> <java classname="com.kuaff.ejb3.stateless.client" fork="yes" dir="."> <classpath refid="classpath"/> </java> </target> <target name="clean.db"> <delete dir="${jboss.home}/server/all/data/hypersonic"/> </target> <target name="clean"> <delete dir="${build.dir}"/> <delete file="${jboss.home}/server/all/deploy/statelesssample.ejb3"/> </target> </project> |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器