在开发ejb之前,我们先得配置好服务器,我使用的是Weblogic9.0中文版,关于Weblogic9.0配置请看我的另一片文章。配置Weblogic9.0
   
    首先需要配置好eclipse。我这里主要说明weblogic的配置。
    

注意JDK选择JDK5.0的版本。
   
    顺便将weblogic8的配置也贴上来,供大家比较参考
   
   
    注意weblogic8的JDK版本必须是JDK1.4。
   
    接下来就开始我们的开发了。


下面就是SessionBean的代码

30
 1 package com.ejb;
 2 
 3 import java.rmi.RemoteException;
 4 
 5 import javax.ejb.EJBException;
 6 import javax.ejb.SessionBean;
 7 import javax.ejb.SessionContext;
 8 
 9 /**
10  * XDoclet-based session bean.  The class must be declared
11  * public according to the EJB specification.
12  *
13  * To generate the EJB related files to this EJB:
14  *        - Add Standard EJB module to XDoclet project properties
15  *        - Customize XDoclet configuration for your appserver
16  *        - Run XDoclet
17  *
18  * Below are the xdoclet-related tags needed for this EJB.
19  * 
20  * @ejb.bean name="HelloWorld"
21  *           display-name="Name for HelloWorld"
22  *           description="Description for HelloWorld"
23  *           jndi-name="ejb/HelloWorld"
24  *           type="Stateless"
25  *           view-type="remote"
26  */
27 public class HelloWorld implements SessionBean {
28 
29     /** The session context */
30     private SessionContext context;
31 
32     public HelloWorld() {
33         super();
34         // TODO 自动生成构造函数存根
35     }
36 
37     /**
38      * Set the associated session context. The container calls this method 
39      * after the instance creation.
40      * 
41      * The enterprise bean instance should store the reference to the context 
42      * object in an instance variable.
43      * 
44      * This method is called with no transaction context. 
45      * 
46      * @throws EJBException Thrown if method fails due to system-level error.
47      */
48     public void setSessionContext(SessionContext newContext)
49         throws EJBException {
50         context = newContext;
51     }
52 
53     public void ejbRemove() throws EJBException, RemoteException {
54         // TODO 自动生成方法存根
55 
56     }
57 
58     public void ejbActivate() throws EJBException, RemoteException {
59         // TODO 自动生成方法存根
60 
61     }
62 
63     public void ejbPassivate() throws EJBException, RemoteException {
64         // TODO 自动生成方法存根
65 
66     }
67 
68     /**
69      * An example business method
70      *
71      * @ejb.interface-method view-type = "remote"
72      * 
73      * @throws EJBException Thrown if method fails due to system-level error.
74      */
75     public String hello() throws EJBException {
76         // rename and start putting your business logic here
77         return new String("HelloEJBWorld!");
78     }
79 
80 }
81 

其实就是修改了其中的一个方法:

1 /**
2 * An example business method
3 *
4 * @ejb.interface-method view-type = "remote"
5 * 
6 * @throwsEJBException Thrown if method fails due to system-level error.
7 */
8 publicString hello() throwsEJBException {
9 //rename and start putting your business logic here
10 returnnewString("HelloEJBWorld!");
11 }

注意:代码中的解释文字不要删除,因为XDoclet需要。

配置属性

添加weblogic.jar。我的路径是:bea\weblogic90\server\lib\weblogic.jar

就下来写EJBTest类:

1 packagecom;

3 importjava.rmi.RemoteException;
4 importjava.util.Properties;

6 importjavax.ejb.CreateException;
7 importjavax.naming.Context;
8 importjavax.naming.InitialContext;
9 importjavax.naming.NamingException;
10 
11 importcom.interfaces.HelloWorld;
12 importcom.interfaces.HelloWorldHome;
13 
14 publicclassEJBTest {
15 
16 /**
17 * @paramargs
18 */
19 publicstaticvoidmain(String[] args) {
20 //TODO 自动生成方法存根
21 Properties properties=newProperties();
22 properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
23 properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
24 
25 Context context;
26 try{
27 context =newInitialContext(properties);
28 HelloWorldHome hwh=(HelloWorldHome)context.lookup("ejb/HelloWorld");
29 HelloWorld hw=hwh.create();
30 String s=hw.hello();
31 System.out.println(s);
32 } catch(NamingException e) {
33 //TODO 自动生成 catch 块
34 e.printStackTrace();
35 } catch(RemoteException e) {
36 //TODO 自动生成 catch 块
37 e.printStackTrace();
38 } catch(CreateException e) {
39 //TODO 自动生成 catch 块
40 e.printStackTrace();
41 }
42 
43 }
44 
45 
46 }
47 

最后就是看结果了,先启动weblogic,然后运行EJBTest程序。

转载于:https://www.cnblogs.com/jiushini/archive/2012/06/14/2549291.html

图解eclipse+myelcipse开发EJB相关推荐

  1. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

    [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端 一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端.看过一本SOA的书中 ...

  2. android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码

    /** 版本:1.0 日期:2009-04-01 作者:HKjinzhao 备注: 转自:http://blog.csdn.net/hkjinzhao/article/details/4043997 ...

  3. 搭建Eclipse+MyEclipse开发环境

                                                               搭建Eclipse+MyEclipse开发环境 一.安装JDK 首先下载JDK 5 ...

  4. 如何在Linux使用Eclipse + CDT开发C/C++程序? (OS) (Linux) (C/C++) (gcc) (g++)

    这篇文章转自博客园一博主,感谢博主的分享 Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发.传统在Linux下开发程序,是在文字模式下 ...

  5. 如何在Linux使用Eclipse + CDT开发C/C++程序 OS Linux C/C++ gcc

    这篇文章转自博客园一博主,感谢博主的分享 Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发.传统在Linux下开发程序,是在文字模式下 ...

  6. eclipse在网页进入时显示重定向过多_使用eclipse快速开发jsp以及编码问题、jsp页面元素、request对象学习的粗略记录...

    人老了真是什么都会忘记啊orz,早上发现学过去的东西好多都还没记录复盘... ...(懒虫作祟) 在开始之前,俺认为还是很有必要了解一下jsp的执行流程,俺发现CSDN上的"陈小哥cw&qu ...

  7. 使用 Apache OpenJPA 开发 EJB 3.0 应用,第 6 部分: 处理实体生命周期事件的回调

    企业应用开发过程中,经常会存在这样的需求:当企业应用中的某些数据被增加.删除.修改时,引发一些特定的动作,完成企业应用中的一些特别的要求,比如企业应用中要完成数据操作日志.处理数据之间的某种关系.或者 ...

  8. 如何在Linux使用Eclipse + CDT开发C/C++程序?

    参照,这里的hello word程序, A. 为什么要在Linux使用Eclipse开发C/C++程序?  Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主 ...

  9. Java在eclipse下开发的常用快捷键集锦

    2019独角兽企业重金招聘Python工程师标准>>> Java在eclipse下开发的常用快捷键集锦 ctrl+shift+o 说明:删除无用的代码引用 使用场景:当前文件中的引用 ...

  10. 【数据平台】Eclipse+MapReduce开发环境(集群运行模式)

    Eclipse+MapReduce开发环境 集群部署centos+jdk1.8+Hadoop2.7.2: 开发端windows+Eclipse Mars.1 Release (4.5.1) 1)had ...

最新文章

  1. python爬虫工程师-Python爬虫工程师
  2. linux fedora35指定某个固定的启动项作为默认的启动项
  3. 『数据库』朴实无华且枯燥的数据库文章--关系数据理论
  4. P2468 [SDOI2010]粟粟的书架 动态规划,主席树,二分答案
  5. 行为设计模式:中介者
  6. C++引用与指针的不同
  7. 特斯拉将美国政府告了:要求停止对华关税并退款!
  8. 关于计算机组件游戏,Windows系统运行库/游戏运行库组件怎么补全?
  9. sitck-breaking折棍法理解
  10. selenium控制浏览器操作
  11. [流体力学][NS方程]关于质量、动量、能量的控制方程的推导
  12. Python爬取必应图片
  13. 史话上:量子物理学的前世今生
  14. Heka采集系统Output插件开发
  15. Hilt Test 短篇:插入辅助测试,插这插那,操家伙,看飞刀。——对面那位接着:memory 做的 *……()……*
  16. 【arduino】常用芯片ATMEGA328P-AU 32TQFP资料详解
  17. 显示屏漏光会有什么影响
  18. 数值实验-高斯核函数 python/matlab 实现
  19. 将遗传算法(GA)应用于指定的函数 f(x) = x*sin(x)+1,x∈[0, 2л],求其最大值和最小值
  20. CAS: 1260119-01-4, NO2-UIO-66, UIO-66-NO2

热门文章

  1. kubernetes视频教程笔记 (26)-集群调度-节点亲和性
  2. 微信小程序云开发教程-WXML入门-数据绑定
  3. python if 比较小数浮点数
  4. 在已有的服务器上如何部署网站,如何在云服务器上部署网站
  5. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_2.RabbitMQ研究-RabbitMQ介绍...
  6. 移动端页面开发资源总结
  7. ADO SQL手写分页
  8. OpenShift应用镜像构建(4) - fabric8-maven-plugin
  9. 第四阶段 15_Linux tomcat安装与配置
  10. excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法