Tech : jboss4。0+tomcat5。0创建第一个ejb

来源:互联网 发布:科尔宾 知乎 编辑:程序博客网 时间:2024/04/28 06:08

 1...
用下面的参考创建 EJB:
http://blog.csdn.net/oyoung/archive/2006/04/24/675043.aspx

注意:在 Project 的 "Java Build Path" -> "Libraries" 中增加 "External Jars":
  %JBOSS_HOME%/server/all/lib/jboss-j2ee.jar

在 XDoclet 配置时,选择 JBOSS version(3.0, 或者 4.0)...

2...
然后 deploy 到 JBOSS....

3...s
Project --> "Export" -->"JAR file" ,
选种项目的 src 文件夹,导出到 Jboss lib:
%JBOSS_HOME%/server/all/lib/FirstEjb.jar

4...
创建一个 Servlet,调用它:

http://localhost:8080/jmx-console/ 显示:
jboss.j2ee
jndiName=ejb/WilliamWorld,service=EJB

注意:我创建的时候 jndiName 是 "ejb/WilliamWorld",
所以lookup是用下面这个,而不只是WilliamWorld:::
Object objRef=ctx.lookup("ejb/WilliamWorld");


import com.ejbstudy.*;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.CreateException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class testConverter extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
  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>");
  out.print("    This is ");
  out.print(this.getClass());
  out.println(", using the GET method.William Feng...");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
*/
  out.println("");
  try
  {
  InitialContext ctx=new InitialContext();
  Object objRef=ctx.lookup("ejb/WilliamWorld");
//  主接口
  WilliamWorldHome home=(WilliamWorldHome)PortableRemoteObject.narrow(objRef,WilliamWorldHome.class);
//  组件接口
  WilliamWorld bean=home.create();
  out.println(bean.hello());
  }
  catch(NamingException ne)
  {
  out.println("Naming Exception caught:" +ne);
  ne.printStackTrace(out);
  }
  catch(CreateException ce)
  {
  out.println("Create Exception caught:" +ce);
  ce.printStackTrace(out);
  }
  out.println("");
}
}