免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6278 | 回复: 7
打印 上一主题 下一主题

Jbuilder9中开发第一个EJB! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-16 15:58 |只看该作者 |倒序浏览
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.

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-10-11 06:20:00数据库技术版块每日发帖之星
日期:2015-10-12 06:20:00数据库技术版块每日发帖之星
日期:2015-10-15 06:20:00数据库技术版块每日发帖之星
日期:2015-10-30 06:20:00综合交流区版块每月发帖之星
日期:2015-12-02 14:59:01数据库技术版块每日发帖之星
日期:2015-12-15 06:20:00
2 [报告]
发表于 2004-07-20 09:41 |只看该作者

Jbuilder9中开发第一个EJB!

好贴!顶一下!

论坛徽章:
0
3 [报告]
发表于 2004-07-21 19:25 |只看该作者

Jbuilder9中开发第一个EJB!


这是我的JB9的版本,为什么不能写EJB

11.JPG (28.03 KB, 下载次数: 60)

11.JPG

22.JPG (38.88 KB, 下载次数: 65)

22.JPG

论坛徽章:
0
4 [报告]
发表于 2004-07-22 00:46 |只看该作者

Jbuilder9中开发第一个EJB!

配置好j2ee server

论坛徽章:
0
5 [报告]
发表于 2004-07-22 09:01 |只看该作者

Jbuilder9中开发第一个EJB!

配置好j2ee server,可以参考一下下面一篇文章!!
http://bbs.chinaunix.net/forum/26/20040716/368180.html
andrewleading_h 该用户已被删除
6 [报告]
发表于 2004-07-22 09:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2004-07-27 09:09 |只看该作者

Jbuilder9中开发第一个EJB!

public interface Hello extends javax.ejb.EJBObject {
public String hello() throws java.rmi.RemoteException;
}
Hello接口中的hello()方法有什么用途,是谁来实现他?是HelloBean吗?但是HelooBean没有implements Hello列.

论坛徽章:
0
8 [报告]
发表于 2004-07-27 17:49 |只看该作者

Jbuilder9中开发第一个EJB!

我想用JAVA小应用程序测试这个EJB,代码如下
package jbossdemo;

import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Properties;

public class HelloClient {
  public static void  main(String[]args)throws Exception {
    Properties props=System.getProperties();
    Context ctx=new InitialContext(props);
    Object obj=ctx.lookup("HelloHome";
    HelloHome Home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
    Hello hell=Home.create();
    .......
}
}
请问客房端应用运行时,提供的JNDI环境信息怎么样写
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP