示例环境: (理论上使用最新版会比较好, 但是因为某些原因,使用如下环境)

1. jdk1.5.0_14

2. Eclipse 3.7

3. jboss-4.2.2.GA

步骤和代码

1. 新建Project(EJB Project 和Java Project都可以) -- ejbTest

2.  导入jboss的lib 包。 -- 右键点击工程->属性-->Java Build Path--> Add External JARs, 把Jboss的client目录下的jar文件都包进去。

3.  新建远程接口 - HelloWorld.java

/*** @Title:HelloWorld.java* @package: service* @Description: * @author: oscar999* @date: 2012-9-5* @version V1.0*/
package service;import java.util.List;import javax.ejb.Remote;import entity.HelloWorlding;@Remote
public interface HelloWorld {public String hello(String message);public List<HelloWorlding> getAllHelloWorlding();
}

注意: @Remote的注释一定要加上, 否则在后面的测试中会报出

javax.naming.NameNotFoundException: remote not bound   的错误

4. 编写传输实例类 --HelloWorlding.java

/*** @Title:HelloWorlding.java* @package: entity* @Description: * @author: oscar999* @date: 2012-9-5* @version V1.0*/
package entity;import java.io.Serializable;public class HelloWorlding implements Serializable {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

5.  编写 Session Bean --HelloWorldBean.java

/*** @Title:HelloWorldBean.java* @package: service* @Description: * @author: oscar999* @date: 2012-9-5* @version V1.0*/
package service;import java.util.ArrayList;
import java.util.List;import javax.ejb.Stateless;import entity.HelloWorlding;@Stateless
public class HelloWorldBean implements HelloWorld {public String hello(String message) {return "Hello World " + message;}public List<HelloWorlding> getAllHelloWorlding() {List<HelloWorlding> helloworldings = new ArrayList<HelloWorlding>();HelloWorlding helloworlding = new HelloWorlding();helloworlding.setId(10);helloworlding.setName("oscar999");helloworldings.add(helloworlding);helloworlding = new HelloWorlding();helloworlding.setId(11);helloworlding.setName("silver");helloworldings.add(helloworlding);return helloworldings;}}

6.  打包,部署

右键点击Project-->Export, 产生 ejbTest.jar 文件, 结构如下(如果创建的是EJB Project,会自动产生META-INF这个文件夹和里面的文件,)

entity

--  HelloWorlding.class

service

-- HelloWorld.class

-- HelloWorldBean.class

META-INF

-- NABUFEST.MF

把ejbTest.jar 直接复制到jboss的server\default\deploy  目录下

至此,服务端的工作就结束了, 接下来就可以在测试端测试了。

在原工程或是新建工程建立测试类(新建的话需要导入相应的lib包),

/*** @Title:TestClient.java* @package: client* @Description: * @author: oscar999* @date: 2012-9-5* @version V1.0*/
package client;import java.util.Properties;import javax.naming.Context;
import javax.naming.InitialContext;import service.HelloWorld;public class TestClient {public static void main(String[] args) {try {Properties prop = new Properties();prop.setProperty(Context.PROVIDER_URL, "localhost:1099");prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");InitialContext ctx = new InitialContext(prop);HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");System.out.println(helloworld.hello("Oscar"));System.out.println(helloworld.getAllHelloWorlding().get(0).getName());} catch (Exception e) {e.printStackTrace();}}}

直接运行就能看到效果了。

EJB - 无状态SessionBean简单示例相关推荐

  1. python线程监控_Python实现线程状态监测简单示例

    本文实例讲述了Python实现线程状态监测.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- from threading import Thread import ti ...

  2. 使用jquery.form.js实现form表单无刷新提交简单示例

    2019独角兽企业重金招聘Python工程师标准>>> 直到今天,才发现JQuery原来有个Form表单插件,而且还是无刷新页面提交表单,看来自己还要多加强学习啊!不多说了,直接贴代 ...

  3. servlet html js提交表单,使用jquery.form.js实现form表单无刷新提交简单示例

    直到今天,才发现JQuery原来有个Form表单插件,而且还是无刷新页面提交表单,看来自己还要多加强学习啊!不多说了,直接贴代码吧,代码比较简单! Servlet代码: package com.pro ...

  4. 无状态会话的ejb_Java EE状态会话Bean(EJB)示例

    无状态会话的ejb 在本文中,我们将了解如何在简单的Web应用程序中使用状态会话Bean来跟踪客户端会话中的状态. 1.简介 有状态会话Bean通常保存有关特定客户端会话的信息,并在整个会话中保留该信 ...

  5. EJB通过ANT提高EJB应用程序的开发效率、无状态发展本地接口bean、开发状态bean...

    该jboss集成到eclipse 关掉Jboss控制台新闻Ctrl+c,在MyEclipse→Servers→Jboss可配置JBoss. 通过ANT提高EJB应用的开发效率 在HelloWorld ...

  6. ejb生命周期_无状态EJB:池化和生命周期

    ejb生命周期 无状态EJB池和生命周期的概述视图(注释). 对新手有用. . . . . EJB池:快速概述 EJB实例存储在称为EJB池的位置-这不过是内存中的缓存 . 无状态EJB通常按需实例化 ...

  7. 无状态EJB:池化和生命周期

    无状态EJB池和生命周期的摘要视图(注释). 对新手有用. . . . . EJB池:快速概述 EJB实例存储在称为EJB池的位置–这不过是内存中的缓存 . 无状态EJB通常按需实例化,即,当客户端调 ...

  8. mongodb连接java_如何从Java EE无状态应用程序连接到MongoDB

    mongodb连接java 在本文中,我将介绍如何从无状态Java EE应用程序连接到MongoDB,以利用与MongoDB Java驱动程序提供的数据库的内置连接池. 如果您开发的REST API对 ...

  9. 如何从Java EE无状态应用程序连接到MongoDB

    在本文中,我将介绍如何从无状态Java EE应用程序连接到MongoDB,以利用与MongoDB Java驱动程序提供的数据库的内置连接池. 如果您开发的REST API对MongoDB执行操作,则可 ...

最新文章

  1. JavaScript 操作 COM 控件
  2. 笔记-信息化与系统集成技术-人工智能基础知识
  3. [APP] Android 开发笔记 001-环境搭建与命令行创建项目
  4. 为什么要用MyBatis-JDBC 连接数据库
  5. java jni ubuntu 环境搭建时遇到的坑
  6. 解决:pip警告!DEPRECATION: The default format will switch to columns in the future.
  7. spring boot security 权限用postman测试_Spring Security(五):前后端权限控制详解
  8. c语言int a什么意思,问一下吧里大神 int a = a; 这么定义是什么意思?
  9. mysql text保存图片_用mysql 如果包含有文字和图片,那么我要用哪种数据类型存储呢?还是分开,用TEXT和BLOB吗?...
  10. 第十周学习总结--助教
  11. 如何在SQL Server中发现和处理孤立的数据库用户
  12. Erlang编程语言的一些痛点
  13. 在Linux下安装QT交叉编译,安装QT交叉编译 成功 + 测试
  14. 05笔记 离散数学——函数——基于离散数学(第3版)_章炯民,陶增乐
  15. 转:W10数字许可激活C#版v3.6 win10永久激活工具
  16. 视频剪辑的方法,视频裂变
  17. unity材质球发光_Unity3D中使物体自发光
  18. 编译器提示old-style parameter declarations
  19. 操作系统系列常见八股文
  20. python re 查找字符串中是否含有汉字

热门文章

  1. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件
  2. java 输出helloword
  3. css分割线 文字居中的7种实现方式
  4. 内存泄露与内存溢出的区别
  5. 大道至简 7、8、读后感
  6. Enterprise Library 3.0 发布
  7. 小程序自定义tabbar custom-tab-bar 6s出不来解决方案,cover-view不兼容
  8. 推荐系统实践之:召回算法和工程协同优化的若干经验
  9. 哈佛大学推荐:让自己变幸福的20件小事(值得收藏)
  10. 程序员面试-并发大数据分布式