web项目调用Ejb3.0组件学习

本文详细介绍了如何在web项目中调用Ejb3.0组件,包括创建Ejb3.0项目,编写业务接口和无状态会话bean,创建web项目并实现servlet,配置web.xml,以及打包和发布步骤。通过实例展示了ejb3.0在web应用中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web项目调用Ejb3.0组件

采用的开发工具为
JbossIDE+MyEclipse+JBoss4.04 

一,首先建立一个ejb3.0项目EJB1+WEB

   业务接口:

                 import javax.ejb.Remote;

             @Remote
               public interface Caculator {

              public int add(int x,int y);
 
              public int substact(int x,int y);
          }

  一个无状态会话bean:

 import javax.ejb.Stateless;
import cn.com.liang.Caculator;

public @Stateless class CaculatorBean implements Caculator {

 public int add(int x, int y) {

  return x+y;
 }

 public int substact(int x, int y) {
  return x-y;
 }

}

    打包测试成功calculator.jar

二:新建一个web项目EjbWeb

    建一个index.jsp页面

     <body>
    <form name="f1" action="servlet/CaculatorServlet" method="post">
     <table>
      <tr>
       <td>number1:<input type="text" name="n1"/></td>
      </tr>
      <tr>
       <td>number2:<input type="text" name="n2"/></td>
      </tr>
      <tr>
       <td><input type="submit" name="Submit" value="add"/><input type="submit" name="Submit" value="substract"/></td>
      </tr>
     </table>
    </form>

  </body>

 再建一个servlet

 import java.io.IOException;
import java.io.PrintWriter;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CaculatorServlet extends HttpServlet {

 private static final long serialVersionUID = 488093000861007932L;
 
 private Caculator caculator;


 public Caculator getCaculator() {
  return caculator;
 }

 public void setCaculator(Caculator caculator) {
  this.caculator = caculator;
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
    
  String submit=request.getParameter("Submit");
  int num1=Integer.parseInt(request.getParameter("n1"));
  int num2=Integer.parseInt(request.getParameter("n2"));
  
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  int result=0;
  if(submit.equals("add")){
   result=caculator.add(num1, num2);
  }else{
   result=caculator.substact(num1,num2);
  }
  out.println(num1+" "+submit+" "+num2+ "= "+result);
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }

 public void init() throws ServletException {
  try {
   InitialContext context=new InitialContext();
   Caculator caculator=(Caculator)context.lookup("mytest/CaculatorBean/remote");
   setCaculator(caculator);
  } catch (NamingException e) {
   e.printStackTrace();
  }
 }

}

web.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>Calculator</servlet-name>
    <servlet-class>cn.com.liang.CaculatorServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Calculator</servlet-name>
    <url-pattern>/servlet/CaculatorServlet</url-pattern>
  </servlet-mapping>

</web-app>


由于要用到ejb中接口Caculator ,所以需导入calculator.jar包

将web项目打包为ejbWeb.war。

三,新将一个META-INF文件夹,然后在里面建一个application.xml文件

  其内容为

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
  "-//Sun Microsystems,lnc//DTD j2EE Application 1.3//EN"
  "http://java.sun.com/dtd/application_1_3.dtd">
<application>
 <display-name>zhouliang's test</display-name>
 <module>
  <web>
   <web-uri>ejbWeb.war</web-uri>
   <context-root>/calWeb</context-root>
  </web>
 </module>
 <module>
  <ejb>calculator.jar</ejb>
 </module>
</application>

四:

calculator.jar //ejb3.0组件
ejbWeb.war     //打包的web项目
META-INF       //对ejb组件和web包访问配置

这三个包或文件拷贝到一个文件夹下,

然后采用jar -cvf mytest.ear *.*  命令将calculator.jar,ejbWeb.war,META-INF三个打包成mytest.ear。

 

最后mytest.ear即可使用发布了。

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值