EJB 开发环境与入门实例

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用户, 可以通过这种方式修改密码。

  1. 命名行切换到 D:\install\wildfly14\bin, 执行 add-user.bat
  2. 设定管理员用户名/密码: admin/admin
    在这里插入图片描述
    上图中, 输入a 添加管理员账号, 后面输入admin后提示是已有账号, 修改密码即可。
  3. 设定用户完成后,在相同的目录,执行 standalone.bat, 启动服务
    在这里插入图片描述

控制台地址: http://127.0.0.1:9990/
在浏览器输入以上地址, 会要求输入用户名/密码。正确输入后,效果如下:
在这里插入图片描述

3. EJB 服务创建

  1. 在Eclipse 中建立EJB Project, Project 名字为: ejb_service
    在这里插入图片描述

2.别急着点Finish, 点击下一步之后, 在之后下一步中勾选产生部署描述的xml文件。
在这里插入图片描述
创建后的项目结构如下:
在这里插入图片描述
ejbModule里面放的就是源码文件。

  1. 将ejb的依赖包加入项目的build path
    文件路径在: D:\install\wildfly14\modules\system\layers\base\javax\ejb\api\main
    在这里插入图片描述

  2. 新建接口和服务类。
    右键单击项目,New-> Session Bean
    输入包名、类名并勾选创建远端接口。
    在这里插入图片描述
    点击Finish后, 会创建两个文件
    在这里插入图片描述

  3. 在接口和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
    }
    
	@Override
	public 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项目进行测试。客户端调用需要:

  1. 客户端调用依赖包: jboss-client.jar
    位于JBoss安装目录: D:\install\wildfly14\bin\client
    也可以在网络直接下载或是通过Maven中央库导入。
  2. 服务端的接口, 也就是上面的: cn.osxm.jcodef.ejb.HelloWorldRemote
    这个接口文件必须和服务端的包和接口名及需要调用的接口保持一致。
    可以从服务器端直接提供,或是打包成 jar档进行导入,在客服端写的话,注意保持一致。
  3. 服务器的路径
    这个和Wildfly的管理控制页面是不一样的端口, 查找方式:
    到管理控制台以下页面
    在这里插入图片描述
    默认是8080端口, 和Tomcat的端口是一样的。
    如果同时使用Tomcat和Wildfly的话, 可以修改这个端口。
  4. 服务的路径, 上面也提到了。这里是:
    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"));

	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值