发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
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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">
<bean id="userManager" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="userManager/remote"></property>
</bean>
</beans>
注意:如果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
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<action-mappings >
<action
path="/ejbAction"
type="com.dcy.ejb.struts.EJBAction">
<forward name="success" path="/success.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.dcy.ejb.struts.ApplicationResources" />
</struts-config>
Jsp页面
[html] view plaincopy
<body>
This is my JSP page. <br>
<a href="ejbAction.do">测试struts调用</a>
</body>