发ejb:

1、创建一个ejb project

2、编写代码(entity bean ; session bean)

①entity bean
[java] view plaincopy

    @Entity 
    public class User implements Serializable { 
        @Id 
        @GeneratedValue 
        private int id; 
        private String username; 
        private String password;     
        //getter setter方法 
    } 

②session bean

接口:
[java] view plaincopy

    public interface UserManager { 
     
        public void addUser(User user); 
        public void deleteUser(int id); 
    } 
    public interface UserManagerLocal { 
     
        public void addUser(User user); 
        public void deleteUser(int id); 
    } 

Bean
[java] view plaincopy

    @Stateless(name="userManager") 
    @Remote({UserManager.class}) 
    @Local({UserManagerLocal.class}) 
    public class UserManagerBean implements UserManager, UserManagerLocal { 
     
        @PersistenceContext(unitName="testsse") 
        private EntityManager em; 
         
        public void addUser(User user) { 
            em.persist(user); 
        } 
     
        public void deleteUser(int id) { 
            User user = em.find(User.class, id); 
            em.remove(user); 
        }    
    } 

一、ejb与spring集成

1、ejb集成spring:spring管理jndi的查找

  ①创建一个java project

  ②引入spring. jar(一个)

  ③编写spring配置文件

applicationContext.xml(放到src目录下):
[html] view plaincopy

     
     
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xmlns:aop="http://www.springframework.org/schema/aop" 
             xmlns:tx="http://www.springframework.org/schema/tx" 
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd 
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> 
     
         
             
       
     
   
 

注意:如果ejb打包成为ear的话,那么property name=“jndiName”的value要加上ear包的名称,如test/userManager/remote。如果是local,则把remote换成local。

  2、测试代码
[java] view plaincopy

    public class UserManagerTest { 
     
        private static BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); 
         
        @Test 
        public void testAddUser() { 
            UserManager userManager = (UserManager)factory.getBean("userManager"); 
            User user = new User(); 
            user.setPassword("password"); 
            user.setUsername("username"); 
            userManager.addUser(user); 
        }                                                                                                            
    } 

二、ejb与struts集成

1、ejb集成struts:只是加入了struts,并未对ejb产生影响。

①建立web project

②引入struts相关jar包(struts1.0)(放到web-inf下的lib文件夹中)

③编写web.xml配置文件
[html] view plaincopy

     
     
       
        action 
        org.apache.struts.action.ActionServlet 
         
          config 
          /WEB-INF/struts-config.xml 
       
 
         
          debug 
          3 
       
 
         
          detail 
          3 
       
 
        0 
     
 
       
        action 
        *.do 
     
 
       
        index.jsp 
     
 
   
 

2、测试代码

编写strutsaction:

[java] view plaincopy

    public class EJBAction extends Action { 
      
       @Override 
       public ActionForward execute(ActionMapping mapping, ActionFormform, 
            HttpServletRequest request, HttpServletResponse response) 
            throws Exception { 
          InitialContext ict = new InitialContext(); 
    //注意:因为要用到UserManagerLocal这个接口,所以,要引入开发的ejb发布成的jar包 
          UserManagerLocal userManager = (UserManagerLocal)ict.lookup("userManager/local"); 
          UserTest user = new UserTest(); 
          user.setUsername("username=zhangsan"); 
          user.setPassword("password=mima"); 
          userManager.addUser(user); 
      
          request.setAttribute("user", user); 
          return mapping.findForward("success"); 
       }  
    } 

struts配置文件:
[html] view plaincopy

     
     
     
     
       
                    path="/ejbAction"  
            type="com.dcy.ejb.struts.EJBAction"> 
           
         
     
 
       
   
 

Jsp页面
[html] view plaincopy

     
        This is my JSP page.
 
        测试struts调用