JBoss + EJB3 + MySql : 开发第一个EJB (二)

2014-11-24 10:16:47 · 作者: · 浏览: 1
ser getUser(int id); //查询并获取User
}
然后创建会话Bean : UserBean


[java]
package dev.bean;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import dev.entity.*;
@Stateless
public class UserBean implements UserBeanRemote {
@PersistenceContext(unitName = "entity")
private EntityManager manager;

public void createUser(User user) {
manager.persist(user);
}

public User getUser(int id) {
return manager.find(User.class, id);
}
}

package dev.bean;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import dev.entity.*;
@Stateless
public class UserBean implements UserBeanRemote {
@PersistenceContext(unitName = "entity")
private EntityManager manager;

public void createUser(User user) {
manager.persist(user);
}

public User getUser(int id) {
return manager.find(User.class, id);
}
}

至此 Bean开发完毕。


三、部署 EJB

Eclipse中,在项目名上右击,选择 Export. 在弹出的向导中选择 EJB JAR file. 然后按照提示即可完成部署。


四、编写测试代码


[java]
public class Client {
public static void main(String[] args) {
try {
Context context = initContext();
UserBeanRemote ubr = (UserBeanRemote)context.lookup("UserBean/remote");

User user = new User();
user.setId(4);
user.setName("bruce lee");
user.setPwd("123456");

ubr.createUser(user);

/*User user = (User)ubr.getUser(2);
System.out.println(user.getName());*/

System.out.println("success!");
}
catch (Exception ex) {
ex.printStackTrace();
}
}

/*
* 这一部分是写死的
* 固定写法
*/
public static Context initContext() throws javax.naming.NamingException {
Properties prop = new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
prop.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
prop.put(Context.PROVIDER_URL, "jnp://localhost:1099");

return new javax.naming.InitialContext(prop);
}

}

public class Client {
public static void main(String[] args) {
try {
Context context = initContext();
UserBeanRemote ubr = (UserBeanRemote)context.lookup("UserBean/remote");

User user = new User();
user.setId(4);
user.setName("bruce lee");
user.setPwd("123456");

ubr.createUser(user);

/*User user = (User)ubr.getUser(2);
System.out.println(user.getName());*/

System.out.println("success!");
}
catch (Exception ex) {
ex.printStackTrace();
}
}

/*
* 这一部分是写死的
* 固定写法
*/
public static Context initContext() throws javax.naming.NamingException {
Properties prop = new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
prop.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
prop.put(Context.PROVIDER_URL, "jnp://localhost:1099");

return new javax.naming.InitialContext(prop);
}

}
至此一个简单的EJB3已经开发完成。