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,你好,世界!