ejb中的3种bean:
什么是会话bean?
编写第一个ejb3的会话bean:
步骤:
1.ejb企业级开发是面向接口编程的,我们完成第一个HelloWorld的例子,首先写接口,也就是远程接口(服务器端)
package cn.com.xinli.ejb3; public interface HelloWorld { public String sayHello(String name); }
2.在写接口的实现类(服务器端)
package cn.com.xinli.ejb3.impl; import javax.ejb.Remote; import javax.ejb.Stateless; import cn.com.xinli.ejb3.HelloWorld; /*表明这个ejb是无状态的会话bean*/ @Stateless /*声明这个ejb的远程接口是HelloWorld,必须要写这个注解,不写调用的时候会报错*/ @Remote(HelloWorld.class) public class HelloWorldBean implements HelloWorld { public String sayHello(String name) { return name+",你好,世界!"; } }
3. 开发客户端
jndi 环境 信息说明:
package cn.com.xinli.ejb3.test; import java.util.Hashtable; import java.util.Properties;
import javax.naming.Context; import javax.naming.InitialContext;
import cn.com.xinli.ejb3.HelloWorld; public class EjbClient { public static void main(String[] args) { Hashtable evn = new Hashtable(); evn.put(Context.PROVIDER_URL, "127.0.0.1:1099"); evn.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); // Properties properties=new Properties(); // properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); // properties.setProperty("java.naming.provider.url", "localhost:1099"); try { InitialContext context=new InitialContext(evn); /** * ejb3比ejb2有可地方比较好,就是在jndi查找的时候不用我们在写ejb-jar.xml * 只要我们按照jndi名字的查找规范就可以找到远程接口了 * */ HelloWorld helloword=(HelloWorld)context.lookup("HelloWorldBean/remote"); System.out.println(helloword.sayHello("huxl")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
4.部署服务器端,就是吧项目打成一个jar包放在jboss的D:\jboss-4.2.3.GA\server\default\deploy下
5.结果:
huxl,你好,世界!