- 论坛徽章:
- 0
|
1、 新建一个Project:选择File->;New Project,在Name栏填写JBossDemo,在Directory栏输入保存路径,其它不变,单击Finsih。选择Project->roject properties,在Path页的Required Libraries中单击Add按钮,在弹出的对话框中选择我们刚才建立的JBoss Libs,单击OK。选择Server页,选中Single Server For All Service in Project,在下拉列表中选择JBoss 3.X,单击OK。
2、 新建一个WEB Application.File->;new ,点WEB标签,点击web application。在Name一栏输入helloWeb,点OK.
3、 新建一个EJB Module. File->;new. 点Enterprise标签,点击EJB Module。在Name里输入Hello,Format选择XML,Version选择EJB 2.0 compliant点OK.
4、 在右边的空白处点鼠标右键,选Create EJB->;Session EJB.在Name栏里输入Hello,其它不变。在出现的HelloBean的方框上点鼠标右键,Add->;Method,在名字里输入hello,Return type里选String,其它不变。
5、 点HelloBean的方框,点右键,选view Bean Source,修改代码如下:
package jbossdemo;
import javax.ejb.*;
public class HelloBean implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
/**@todo Complete this method*/
}
public void ejbRemove() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public String hello() {
/**@todo Complete this method*/
return "Hello World";
}
}
6、点左上角jbossdemo下的Hello.java,修改代码如下:
package jbossdemo;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
public interface Hello extends javax.ejb.EJBObject {
public String hello() throws java.rmi.RemoteException;
}
HelloHome.java
package jbossdemo;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
public interface HelloHome extends javax.ejb.EJBHome {
public Hello create() throws CreateException, RemoteException;
}
7、 在左边JbossDemo.jpx上点鼠标右键,make,编译我们刚才新建的EJB.新建一Servlet来调用我们刚才编写的EJB(Hello).File->;new->;Web->;Servlet。在Class Name中填HelloServlet。点doGet方法,基它的按默认,点Finish,完成Servlet的创建,修改HelloServlet.java的代码如下
package jbossdemo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
public class HelloServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
private HelloHome home = null;
//Initialize global variables
public void init() throws ServletException {
try{
String initCtxFactory = getInitParameter(Context.INITIAL_CONTEXT_FACTORY);
String providerURL = getInitParameter(Context.PROVIDER_URL);
Properties env = new Properties();
if(initCtxFactory != null){
env.put(Context.INITIAL_CONTEXT_FACTORY,initCtxFactory);
}
if(providerURL != null){
env.put(Context.PROVIDER_URL,providerURL);
}
Context ctx = new InitialContext(env);
Object obj = ctx.lookup("Hello"
home = (HelloHome)javax.rmi.PortableRemoteObject.narrow(obj,jbossdemo.HelloHome.class);
}catch(javax.naming.NamingException ne){
System.out.println("Create Exception caught:"+ne);
}catch(Exception e){
throw new ServletException(e.toString());
}
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
try{
// 组件接口
Hello bean =home.create();
out.println(bean.hello());
}catch(javax.ejb.CreateException ce){
out.println("Create Exception caught:"+ce);
ce.printStackTrace(out);
}catch(java.rmi.RemoteException re){
out.println("Remote Exception caught:"+re);
re.printStackTrace(out);
}
}
//Clean up resources
public void destroy() {
}
}
8、File->;New->;Enterprise->;EAR。Next->;选中建的EJB(Hello),Next->;Next->;选中web application,HelloWeb后,Next->;finish。Make我们的Project,JbossDemo.jpx.。选中左上角的JbossDemo.eargrp,点鼠标右键,Deploy Option For “JbossDemo.ear”->;Deploy.按F9,Run我们的Project. |
|