EJB 开发环境与入门实例
文章目录
- 1.环境准备
- 2.WildFly
- 介绍
- 下载
- 配置与启动
- 3. EJB 服务创建
- 4.客户端调用
1.环境准备
OS: Windows 8, 64 Bit
JDK: 1.8
Eclipse: Photon Release (4.8.0)
WildFly: 14.0.1.Final
2.WildFly
介绍
WildFly 是JBoss AS的新的项目的名称。
JBoss分为AS 和 EAP两个版本, AS是开源社区版本,EAP-Enterprise Application Platform是在开源版本上构建的企业版本。
JBoss AS 7.2.0是JBoss EAP 6.1 的基础上开发的,从 8版本开始, JBoss AS就换成了WildFly。
下载
下载地址:
http://wildfly.org/downloads/
目前(2018/11)最新版是 14.0.1.Final。
下载后解压,这里解压到 D:\install\wildfly14 目录。
配置与启动
WildFly的后台管理需要输入用户名密码登录。 所以需要使用管理员账号。使用 add-user.bat 执行交互式用户和密码设定。默认安装有admin用户, 可以通过这种方式修改密码。
- 命名行切换到 D:\install\wildfly14\bin, 执行 add-user.bat
- 设定管理员用户名/密码: admin/admin
上图中, 输入a 添加管理员账号, 后面输入admin后提示是已有账号, 修改密码即可。 - 设定用户完成后,在相同的目录,执行 standalone.bat, 启动服务
控制台地址: http://127.0.0.1:9990/
在浏览器输入以上地址, 会要求输入用户名/密码。正确输入后,效果如下:
3. EJB 服务创建
- 在Eclipse 中建立EJB Project, Project 名字为: ejb_service
2.别急着点Finish, 点击下一步之后, 在之后下一步中勾选产生部署描述的xml文件。
创建后的项目结构如下:
ejbModule里面放的就是源码文件。
将ejb的依赖包加入项目的build path
文件路径在: D:\install\wildfly14\modules\system\layers\base\javax\ejb\api\main
新建接口和服务类。
右键单击项目,New-> Session Bean
输入包名、类名并勾选创建远端接口。
点击Finish后, 会创建两个文件
在接口和Bean的文件中添加方法。
package cn.osxm.jcodef.ejb;import javax.ejb.Remote;@Remote
public interface HelloWorldRemote {public String sayHello(String user);
}
package cn.osxm.jcodef.ejb;import javax.ejb.LocalBean;
import javax.ejb.Stateless;/*** Session Bean implementation class HelloWorld*/
@Stateless
@LocalBean
public class HelloWorld implements HelloWorldRemote {/*** Default constructor. */public HelloWorld() {// TODO Auto-generated constructor stub}@Overridepublic String sayHello(String username) {return "Hello," + username + ". This is first EJB Service.";}}
6.打包部署
右键单击项目, Export
默认打包的文件名是项目名.jar, 这里是 ejb_service.jar
部署只需要将这个文件复制到 D:\install\wildfly14\standalone\deployments 目录下。
Wildfly 支持热部署, 在服务开启的状况下, 将文件 拷入会自动的部署。在服务控制台可以看到部署的日志:
以上红色框部分就是服务的地址, 后面客户端调用的时候就是使用这个地址。
4.客户端调用
新建一个普通的Java项目进行测试。客户端调用需要:
- 客户端调用依赖包: jboss-client.jar
位于JBoss安装目录: D:\install\wildfly14\bin\client
也可以在网络直接下载或是通过Maven中央库导入。 - 服务端的接口, 也就是上面的: cn.osxm.jcodef.ejb.HelloWorldRemote
这个接口文件必须和服务端的包和接口名及需要调用的接口保持一致。
可以从服务器端直接提供,或是打包成 jar档进行导入,在客服端写的话,注意保持一致。 - 服务器的路径
这个和Wildfly的管理控制页面是不一样的端口, 查找方式:
到管理控制台以下页面
默认是8080端口, 和Tomcat的端口是一样的。
如果同时使用Tomcat和Wildfly的话, 可以修改这个端口。 - 服务的路径, 上面也提到了。这里是:
ejb_service/HelloWorld!cn.osxm.jcodef.ejb.HelloWorldRemote
可以从Wildfly服务控制台日志看到, 也可以到管理页面中查询。
Runtime->JNDI
5. 调用代码:
/*** @Title: HelloWorldMain.java* @Package cn.osxm.jcodef.ejb* @Description: TODO* @author osxm:oscarxueming* @date 2018��11��24�� ����5:51:47* @version V1.0*/package cn.osxm.jcodef.func.ejb.client;import java.util.Properties;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;/*** @ClassName: HelloWorldMain* @Description: TODO* @author osxm:oscarxueming*/public class HelloWorldMain {/*** @Title: main* @Description: TODO* @param args* @throws NamingException*/public static void main(String[] args) throws NamingException {Properties props = new Properties();props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");props.put(Context.PROVIDER_URL, "http-remoting://127.0.0.1:8080");props.put("jboss.naming.client.ejb.context", true);InitialContext context = new InitialContext(props);// JNDI·String fullEJBName = "ejb_service/HelloWorld!cn.osxm.jcodef.ejb.HelloWorldRemote";cn.osxm.jcodef.ejb.HelloWorldRemote helloWorld = (cn.osxm.jcodef.ejb.HelloWorldRemote) context.lookup(fullEJBName);System.out.println(helloWorld.sayHello("osxm"));}}
EJB 开发环境与入门实例相关推荐
- 【技术文档】Jeecg-P3开发环境搭建入门(java插件开发框架)
一.项目工程说明 jeecg-p3-web | 启动主项目 jeecg-p3-biz-demo | 插件项目 注意:项目为maven工程,采用maven方式导入eclipse等ID ...
- Android开发实战一之搭建开发环境-附测试实例(已亲测)
使用JDK.Android SDK.Eclipse + ADT搭建开发环境 附测试实例 (已亲测) ----------------------------------------- ...
- 新手对于iPhone开发环境等入门问题解答汇总
1 iPhone能否在Windows中开发 同类问题:iPhone能不能在XP开发?iPhone能不能在Vista下开发?iPhone能不能在linux下开发? 答: 如果要开发能够在App Stor ...
- Flutter基础—开发环境与入门
Flutter开发环境的前提要求如下: Windows 7以上版本(64位).Mac或Linux操作系统(64位) 磁盘空间:400 MB(不包括Android Studio的磁盘空间). 已经安装及 ...
- Revit二次开发——设备自动接管插件的开发思路(入门实例教程)
前文提及 使用翻模插件进行前期建模工作 是效率较高的工作模式 用翻模软件 对水暖管线翻模 简直爽到爆炸 解放劳动力刷知乎/强 本文介绍--管道与终端设备的自动接管插件开发思路 (以水管与风机盘管连接为 ...
- windows搭建python开发环境方法_04 Windows下搭建 Python 开发环境 - Python 入门教程
前面两个小节中我们已经学习了在 MacOS 和 Ubuntu 中安装 Python 的开发环境.当然,作为用户基数最多的 Windows 操作系统,我们当然不会忘记,这节课我们就来学习下如何在 Win ...
- 搭建基于ASP.NET 2.0的DNN 4.X模块开发环境及模块实例(2)
群里一直有朋友在问如何构建基于ASP.NET 2.0的DNN 4.X模块开发环境,受原来ASP.NET1.1多工程机制的思维影响,大家一直在等待VS2005支持多工程,经过一段时间的学习和摸索,发现其 ...
- vscode搭建vue开发环境(vue入门)
本文基于vue2.0版本,文末说明怎么升级为vue3.0版本 一.安装VScode 从官网下载,安装就行.以下操作在win+r -> cmd 命令行界面执行.在vscode中就是在创建好的项目空 ...
- JEECG-P3开发专题 - 开发环境搭建入门
官方标准开发工具: 1 .IDE Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) Build id: 2 ...
最新文章
- 单独学python能干嘛-学 Python 都用来干嘛的?
- FESCAR:阿里重磅开源分布式事务解决方案
- 【kafka】kafka 发送数据 发送失败 回调函数 怎么能记录异常的消息内容
- jieba源码分析(二)
- java加法运算表达式_java运算符和表达式
- 两分钟搞懂,五花八门的门禁卡(ID卡、IC卡、CPU卡),免费复制
- 机器学习经典案例——泰坦尼克号
- ROS学习笔记之——amcl源码的解读
- 谷歌浏览器无法使用谷歌翻译解决办法
- Java web接入google身份验证器二次验证
- 【Python鸡兔同笼】
- “人工智能”初创公司所面临的问题
- 各种机器学习分类模型的优缺点
- zynq7000 资源介绍
- 最新Java资源整理,大多数人的选择
- 时光相册 php,一周 App 派评:支持插图表格 iA Writer 4、智能修颜 Facetune 2、新海诚滤镜「时光相册」、脑力锻炼「大脑之旅」...
- java里面xml sql写法
- 基于python fitz的pdf文件处理器--已开源
- 基于51单片机的霓虹灯c语言,基于51单片机霓虹灯.pdf
- 一个很Nice的Android Banner轮播图库