本实例用到的工具

1. jboss5 (配置不做介绍,谷歌度娘都有)
2. MyEclipse 9

实例创建

1.EJB类创建

打开MyEclipse 9 中右上角如下选项 



再新建一个EJB项目



新建后项目结构如下:



右击新建Interface,
本人新建的Interface如下:
package edw;

public interface HelloWorld {
	 public String sayHello(String who);
}

右击新建SessionBean:

package edw;

import javax.ejb.Remote;
import javax.ejb.Stateless;

/**
 * Session Bean implementation class HelloWorldBean
 */
@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {

	/**
	 * Default constructor.
	 */
	public HelloWorldBean() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HelloWorld#sayHello(String)
	 */
	public String sayHello(String who) {
		// TODO Auto-generated method stub
		return who + ",你好,欢迎使用ejb";
	}

}

完成以上步骤之后,对其进行发布






这里模式我选择了



2.客户端测试类创建

新建一个Java Project
EjbClient
测试主类:
package edw;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

public class HelloWorldEjbClient {

	/**
	 * @param args
	 * @throws NamingException
	 */
	public static void main(String[] args) throws NamingException {
		// TODO Auto-generated method stub
		Properties props = new Properties();
        props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        props.setProperty("java.naming.provider.url", "localhost:1099");
        props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");  

        InitialContext context = new InitialContext(props); 

        HelloWorld helloWorldEjb = (HelloWorld)context.lookup("HelloWorldBean/remote");
        String strName = helloWorldEjb.sayHello("Edwards"); 

        System.out.println(strName);
	}

}

将上面创建的EJB中的接口文件存放至如下:


再builddpath,把jboss解压目录下的client文件夹下的 jbossall-client,jar  导入,到这里项目创建基本完成.
运行测试主类 HelloWorldEjbClient.java
备注:



lookup(url) 里面url 对应在jboss 里面的 namespace 

如何在jboss 里面找到?

步骤如下:在浏览器输入localhost:8080  ---注意8080是默认一般有冲突, 需要修改

点击红色圈里的连接 进入,

再找到

点击下面按钮:

终于找到了:

心得:

其实我也是刚开始学EJB,  这个测试项目折腾了我3天时间,  因为不熟悉而且很多陌生问题,版本问题或配置等问题网上资料很杂粹,
换了很多版本如Jboss 5,6,7; 很纠结特别是jboss 7, 然后又换回jboss 5 ,
终于测试成功了, ^-^,虽然不算什么,但又一体验了成就感...
坚持相信 没有解决不了的问题, 只有找不到的解决方法!


EJB3+JBoss5+Myeclipse9创建HelloWorld实例的更多相关文章

  1. 跟着刚哥学习Spring框架--创建HelloWorld项目(一)

    1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spri ...

  2. SpringMVC HelloWorld实例开发及部署

    SpringMVC HelloWorld实例开发及部署 2017-01-24 目录 1 Tomcat及Eclipse Tomcat插件安装配置  1.1 Tomcat的安装  1.2 Eclipse ...

  3. Maven– HelloWorld实例

    Maven– HelloWorld实例 maven安装好后,可以通过HelloWorld项目来体验一下maven是如何构建项目的.Maven项目的核心是pom.xml(就像Ant的build.xml一 ...

  4. EntityFramework Core 1.1是如何创建DbContext实例的呢?

    前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...

  5. 单机静默安装GI软件并创建ASM实例和ASM磁盘组

    环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...

  6. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  7. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  8. C#创建委托实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyDe ...

  9. 11g 使用rman duplicate复制数据库,创建辅助实例

    一,创建所需目录 1)创建审计文件目录 PROD1@dbrac1 /dsg/oracle11$ cd $ORACLE_BASE/admin PROD1@dbrac1 /u01/app/oracle/a ...

随机推荐

  1. ●BZOJ 3270 博物馆

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3270题解: 期望DP,高斯消元 本来是定义的关于概率的dp, 但是发现这样定义有很多解释不通 ...

  2. ●UOJ 34 多项式乘法

    题链: http://uoj.ac/problem/34 题解: FFT入门题. (终于接触到迷一样的FFT了) 初学者在对复数和单位根有简单了解的基础上,可以直接看<再探快速傅里叶变换> ...

  3. ●BZOJ 3529 [Sdoi2014]数表

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3529 题解: 莫比乌斯反演. 按题目的意思,令$f(i)$表示i的所有约数的和,就是要求: ...

  4. ●BZOJ 4698 Sdoi2008 Sandy的卡片

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4698 题解: 后缀数组,二分这个题还是比较套路的.首先依据题意,把各个串差分以后,用分割符号 ...

  5. 51Nod 1331 狭窄的通道

    有一个长为L的狭窄通道,我们假设这个通道在x轴上,其两个出口分别在x=0与x=L处.在这个通道里有N只狼,第i只狼有一个初始位置ai,它想到达位置bi(0<=i=L处空间足够大可以装下任意数量的 ...

  6. python 用codecs实现数据的读取

    import numpy as np import codecs f=codecs.open('testsklearn.txt','r','utf-8').readlines() print(f) d ...

  7. 深度学习 Fine-tune 技巧总结

    深度学习中需要大量的数据和计算资源(乞丐版都需要12G显存的GPU - -)且需花费大量时间来训练模型,但在实际中难以满足这些需求,而使用迁移学习则能有效 降低数据量.计算量和计算时间,并能定制在新场 ...

  8. width:100vh有感而发

    在看一个网页的代码是看到 width:100vh  纳尼...这这我怎么没有见过,这是个什么属性,随之有看到 min-height:calc(100vh + 51px);这尼玛又是怎么用的.... 感 ...

  9. 脱离文档流两操作,float和position:absolute的区别

    文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,块状元素独占一行,内联元素不独占一行: CSS中脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离 ...

  10. Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal

    下载 http://tomcat.heanet.ie/native/1.1.12/binaries/win32/tcnative-1.dll将这个文件复制到C:\WINDOWS\system32\,. ...