文档章节

EJB3.0环境搭建+HelloWorld实现(JBoss7.1.1_Eclipse Juno)

小致dad
 小致dad
发布于 2016/07/13 14:36
字数 1061
阅读 26
收藏 0
点赞 0
评论 0

I、环境搭建

一、所需环境

1、 JDK(1.6 及以上版本)

2、 Eclipse(本人使用 Juno 版)

3、 JBoss 7.1.1  下载地址:http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-

as-7.1.1.Final.zip

二、安装 JBoss

1、 将下载的压缩文件解压到本地目录,注意:解压目录不要包含中文以及空格等字符。

2、 配置 JBoss 环境变量。变量名:JBOSS_HOME,变量值:第一步中的解压目录。(此

步骤不是必须的,但是建议进行配置,否则以后打开 Eclipse 后会出现无法找到 JBoss

环境变量的提示)。

三、安装 JBoss Tools

● Juno  版 : 使用  Eclipse Marketplace  安装  JBoss Tools 。 具 体 操 作 : help->Eclipse

image

Marketplace->搜索 JBoss Tools,单击 Install,根据提示安装。

●Indigo 版本:

1、下载 JBoss Tools:下载地址:

http://sourceforge.net/projects/jboss/files/JBossTools/JBossTools3.3.x/jbosstools- 3.3.1.Final.aggregate-Update-2012-07-14_23-57-15-H211.zip

2、具体操作:help->Install New Software->Add->Archive 选择刚才下载的.zip 文件。根

据提示进行安装。

四、配置 JBoss

1、转到 Server 选项卡:

image

4、 右键点击 New->Server

5、 选择默认的 JBoss As 7.1 ,点击 finish.

image

6、 右键点击新建的 JBoss 服务器->Start,启动服务器。

image

7、用浏览器访问 http://127.0.0.1:8080/,若出现下图,则说明配置成功。

 

II、Hello World 实现

1、 新建工程:

image

image

注意:EJB module version 一栏请选择 3.0 版本。

点击 Next,将 Generate ejb-jar.xml deployment descriptor 一栏勾上,以便由 Eclipse 自动创建

xml 部署文件。

image

点击完成。完成 EJB 工程的创建。

2、 添加客户端所需的 Jar 包。配置构建路径,在 Libraries 选项卡单击添加外部 Jar,选择

JBoss 安装目录 jboss-as-7.1.1.Final\bin\client 下的 jboss-client.jar 文件,完成 Jar 文件的

添加。

image

image

3、 创建 Session Bean。在 ejbModule 根目录下,创建 session bean 3.x。

image

image

包名为 com.jerrylab.business,类名为 HelloWorldBean,类型为 Stateless,选中 Remote。

完成 Session Bean 的创建。

此时 IDE 会自动完成两个 java 文件的创建。其中 HelloWorldBeanRemote.java 是远程接

口,HelloWorldBean 是接口的实现。

image

在 HelloWorldBeanRemote.java 中添加以下代码:

package com.jerrylab.business;
import javax.ejb.Remote;
@Remote
public interface HelloWorldBeanRemote {
    public String sayHello();
}

在 HelloWorldBean.java 中添加以下代码:

package com.jerrylab.business;
import javax.ejb.Stateless;
/**
* Session Bean implementation class HelloWorldBean
*/
@Stateless
public class HelloWorldBean implements HelloWorldBeanRemote {
/**
* Default constructor.
*/
    public HelloWorldBean() {
    // TODO Auto-generated constructor stub
    }
@Override
public String sayHello(){
    // TODO Auto-generated method stub
    return "Hello World!!!";
}
}

4、 将 EJB 部署到 JBoss 服务器。选中 JBoss 服务器,右键点击 Add and Remove…

image

image

添加 HelloWorldEJB。点击完成。

 

image

控制台中出现下列文字,说明 EJB 部署成功。

5、 建立客户端工具类。

所有的命名服务都是在 javax.naming.Context 接口的实现上完成的。

新建一个叫做 ClientUtility 的类,包名 com.jerry.clientutility。

image

添加下列代码:

package com.jerrylab.clientutility;
import java.util.Properties;  import javax.naming.Context;  import javax.naming.InitialContext;
import javax.naming.NamingException;
public class ClientUtility {
private static Context initialContext;
private static final String PKG_INTERFACES =
"org.jboss.ejb.client.naming";
public static Context getInitialContext() throws NamingException {
if (initialContext == null) {
Properties properties = new Properties(); properties.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);
initialContext = new InitialContext(properties);
}
return initialContext;
}
}

6、创建客户端类。

建立一个远程的 Java 程序(带有 main()方法)来访问部署到服务器中的 EJB。

image

类名Client,包名com.jerrylab.client。

添加以下代码:

package com.jerrylab.client;
import javax.naming.Context;
import javax.naming.NamingException;
import com.jerrylab.business.HelloWorldBean;
import com.jerrylab.business.HelloWorldBeanRemote;
import com.jerrylab.clientutility.ClientUtility;
public class Client {
public static void main(String[] args) { HelloWorldBeanRemote bean = doLookup();
System.out.println(bean.sayHello()); // 4. Call business logic
}
private static HelloWorldBeanRemote doLookup() { Context context = null;
HelloWorldBeanRemote bean = null; try {
// 1. Obtaining Context
context = ClientUtility.getInitialContext();
// 2. Generate JNDI Lookup name
String lookupName = getLookupName();
// 3. Lookup and cast
bean = (HelloWorldBeanRemote) context.lookup(lookupName);
} catch (NamingException e) { e.printStackTrace();
}
return bean;
}
private static String getLookupName() {
/*
The app name is the EAR name of the deployed EJB without .ear suffix. Since we haven't deployed the application as a .ear,
the app name for us will be an empty string
*/
String appName = "";
/* The module name is the JAR name of the deployed EJB without the .jar suffix.
*/
String moduleName = "HelloWorldSessionBean";
/*AS7 allows each deployment to have an (optional) distinct name. This can be an empty string if distinct name is not specified.
*/
String distinctName = "";
// The EJB bean implementation class name
String beanName = HelloWorldBean.class.getSimpleName();
// Fully qualified remote interface name
final String interfaceName = HelloWorldBeanRemote.class.getName();
// Create a look up string name
String name = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName;
return name;
}
}

7、配置 EJB 客户端上下文属性。

在 ejbModule 目录下创建一个 jboss-ejb-client.properties 文件,并在其中添加以下几行:

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default
remote.connection.default.host=localhost remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOAN ONYMOUS=false

8、运行 Client.java,类型为 Java Application。

控制台中输出:“Hello World!!”(如果运行不成功,可以尝试重启 JBoss 服务器)

© 著作权归作者所有

共有 人打赏支持
小致dad
粉丝 116
博文 513
码字总数 559477
作品 0
济南
技术主管
eclipse下erlang环境的搭建

最近实施的项目需要用到erlang,所以这里把环境搭建一下。 Java程序员习惯了使用eclipse,所以这里说一下在eclipse里面搭建erlang的开发环境。 百度了一下,能看到不少在eclipse里面搭建环境...

davelet
2015/03/21
0
0
ADT+Android-m2e环境搭建(Mac OS)

环境要求 JDK1.6+ Maven 3.1.1+ Eclipse Indigo(3.7)、Juno(4.2)以上版本 虽然m2e-android官方推荐Eclipse使用Indigo和Juno以上版本,但本文是基于Kepler(4.3)来分享安装过程的。并整理了Jun...

Madmatrix
2014/07/10
0
0
Eclipse+PDT+Xdebug 远程调试Linux主机上的apache+php工程

本文描述远程调试Linux主机上的apache+php工程,各端需要的工具示意图如下: CLIENT(windows, 10.239.54.24)-----------------------------------------------------------------SERVER(u...

dhole
2014/03/08
0
0
Java开发环境搭建全过程(上)

今天重装系统,对java开发环境重新进行了搭建,记录下自己搭建的过程留做以后参考。。。^o^ 第一部分 J2EE环境搭建 用的是j2sdk1.5+Tomcat5.5.16+Eclipse3.1.1+MyEclipse4.1.1 1. 安装jdk到...

嗯哼9925
2017/12/27
0
0
续:自定义适配器实现Grid View和Gallery碰到到问题。

通过(析:自定义适配器实现Grid View和Gallery碰到到问题。)的努力:终于可以让应用程序在模拟器上面正常运行起来。 现在就有些贪心了,想让这个应用能在我的宝贝android手机上运行! 按照...

垂盆草
2012/08/18
0
0
又见Android开发环境搭建

ADT和SDK是需要版本匹配的; eclipse版本 ; ADT的安装都是一个在线安装地址 https://dl-ssl.google.com/android/eclipse/ 但是发现是这种在线安装方法不好,麻烦,时间长,所以都去找离线安...

JORDANSG
2012/09/28
0
1
Scala学习笔记(2):开发环境的搭建

下载和安装Scala 前往http://www.scala-lang.org/downloads 下载Scala在各个平台的安装包,安装后即可在运行scala编译器和交互式命令行环境(interactive interpreter)。除此之外为了更加方便...

chengyao2
2013/04/29
0
1
eclipse android环境配置问题以及解决途径汇总

第一次自己搭建android环境,运行eclipse的时候,就是不能运行出android avd(虚拟机),老是出现"emulator-arm.exe已停止工作" 的提示框,这个问题解决后又出现了adb.exe不能启动问题,新建...

fanfangogo
2012/08/31
0
1
HelloWorld概述

2.1 概述 2.1.1 功能概述 通过上一章的讲述,明白了Struts2是什么,有什么以及能干什么,接下来就该来讨论怎么做的问题了,也就是讨论如何使用Struts2来开发基于MVC的web应用。 按照惯例,学...

空呗
2014/01/08
210
1
Android开发之旅:环境搭建及HelloWorld

引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。 在开...

一念三千
2013/04/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
14分钟前
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
30分钟前
4
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
47分钟前
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部