Eclipse jboss搭建EJB项目

article/2025/9/12 11:17:13

        之前使用Idea搭建了EJBDemo项目,使用的JBoss7版本,但对于低版本的Jboss支持并不太好,经常会有莫名其妙的错误和不兼容信息。下面使用Eclipse搭建一个Demo。

目录

一、工具版本

二、搭建Demo

1.Eclipse 配置jboss

(1)确认Eclipse 是否安装JBoss Tools 插件

(2)配置本地 jboss-5.1.0.GA

(3)验证JBoss配置

2.Eclipse创建EJBServer项目

(1)创建EJBServer

(2)创建Session Bean > HelloWorld

(3)增加方法

(4)eclipse部署 EJBServer并启动

 (5)另一重部署方式:JBoss中部署

3.Eclipse创建客户端EJBClient项目并测试

(1)创建java工程EJBClient

 (2)导入Jar包

(3)编写测试类


一、工具版本

eclipse version:Oxygen.3a Release (4.7.3a)(Eclipse下载地址:Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects...)

Jboss version: jboss-5.1.0.GA( JBoss下载地址:JBoss Application Server Downloads - JBoss Community)

jdk version: jdk1.7.0_64

二、搭建Demo

1.Eclipse 配置jboss

 本地安装 jboss-5.1.0.GA 参考 jboss-5.1.0.GA 安装详细步骤_Jandey.柳的博客-CSDN博客

(1)确认Eclipse 是否安装JBoss Tools 插件

工具栏 Window > Preferances > Server > Runtime Environment > Add

 在上面打开的页面中并没有 JBoss 目录,说明Eclipse缺少插件,下面安装一下:

工具栏 Help > Eclipse marketplace,输入 jboss查找,找到 JBoss Tools 插件,点击“Install” 安装即可,安装完成会提示重启Eclipse。

 安装完成后Server中就会有JBoss的选项了:

(2)配置本地 jboss-5.1.0.GA

 确认JavaSE-1.7是指向的本地JDK1.7

这样本地的JBOSS就配置完成了。

(3)验证JBoss配置

Eclipse 下方工具栏找到 Servers,如下:

空白处鼠标右击出现菜单, New > Server

server页面如下:

点击 Next

 先不配置项目,只启动JBoss,点击 Finish 完成。选择服务器右击,再点击 start 启动:

 启动日志如下:

浏览器打开链接:http://127.0.0.1:8080/

 验证成功。

2.Eclipse创建EJBServer项目

创建工程目录如下:

(1)创建EJBServer

 File > New > Other  > EJB > EJB Project

 点击 “Next”

 点击 Next,在页面中勾选“Generate ejb-jar.xml deployment descriptor”

 点击 Finish 完成,生成项目如下:

(2)创建Session Bean > HelloWorld

ejbModule目录是编写JAVA源码的目录。

在ejbModule 目录上右键【New】>【Other】>【EJB】

 在页面中编辑报名和类名:

 点击 Finish,然后会自动生成文件:

(3)增加方法

上述生成的三个文件中,HelloWorld.java是实现类,HelloWorldRemote.java是远程调用接口。HelloWorldLocal.java是本地调用接口,暂时不用管。

编辑HelloWorldRemote.java 增加say 方法:

package com.ejb;import javax.ejb.Remote;@Remote
public interface HelloWorldRemote {String say(String word);
}

 编辑HelloWorld.java 实现say 方法:

package com.ejb;import javax.ejb.Stateless;/*** Session Bean implementation class HelloWorld*/
@Stateless
public class HelloWorld implements HelloWorldRemote, HelloWorldLocal {/*** Default constructor. */public HelloWorld() {// TODO Auto-generated constructor stub}public String say(String word) {// TODO Auto-generated method stubreturn "Hello " + word + "!";}}

(4)eclipse部署 EJBServer并启动

在刚才添加的JBoss服务中增加项目即可:

然后启动JBoss,如下“小虫子”的标识是 Debug启动,可代码调试,“播放”标识是 run启动。

 启动后控制台日志:

 (5)另一重部署方式:JBoss中部署

也可以在JBoss中部署,需要将EJBServer项目导出Jar 包,放到JBoss安装目录下

C:\Java\JBoss\jboss-5.1.0.GA\server\default\deploy

 然后手动启动JBoss,目录 C:\Java\JBoss\jboss-5.1.0.GA\bin 下的文件 run.bat(启动)、shutdown.bat(停止)。

3.Eclipse创建客户端EJBClient项目并测试

(1)创建java工程EJBClient

客户端创建一个普通的Java项目就行 File > New > Other > Java Project

 创建后的工程如下:

 (2)导入Jar包

想要引用EJBServer项目目中的远程接口,必不可少的两个jar包:

第一个 > jbossall-clent.jar :从JBoss安装包中获取,目录> C:\Java\JBoss\jboss-5.1.0.GA\client 中;

第二个 > EJBServer.jar : 就是EJBServer项目Jar包,需要先导出EJBServer项目Jar包,在引用到EJBClient项目。按照上面部署时的打包方式Export生成一个EJBjar包,然后导入到client项目。我在EJBServer下面创建了一个outjar 文件夹,我把EJBServer.jar导入到了这里。

(3)编写测试类

在src下创建包 com.ejb.client,下面创建Java类HelloWorldTest.java

编辑 HelloWorldTest.java 内容如下:

package com.ejb.client;import java.util.Properties;import javax.naming.InitialContext;
import javax.naming.NamingException;import com.ejb.HelloWorldRemote;public class HelloWorldTest {public static void main(String[] args) {try {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");System.out.println(">>初始化上下文 InitialContext");InitialContext ctx = new InitialContext(props);System.out.println(">>查找远程接口 lookup  ");String serviceName = "HelloWorld/remote";HelloWorldRemote helloWorld = (HelloWorldRemote) ctx.lookup(serviceName);System.out.println(">>调用say方法");String result = helloWorld.say("World");System.out.println(">>输出结果 = " + result);} catch (NamingException e) {e.printStackTrace();}}}

执行结果如下:

>>初始化上下文 InitialContext
>>查找远程接口 lookup  
log4j:WARN No appenders could be found for logger (org.jnp.interfaces.TimedSocketFactory).
log4j:WARN Please initialize the log4j system properly.
>>调用say方法
>>输出结果 = Hello World!

上面都是我按照实际步骤执行进行的截图,希望大家都能成功!


http://chatgpt.dhexx.cn/article/UtTV636k.shtml

相关文章

WildFly:如何从位于另一个应用程序中的 EJB 调用 EJB

目录 创建 EJB 服务器项目 配置服务器依赖项(WildFly 18 及更高版本) 配置服务器依赖项(WildFly 11、12、13、14、15、16、17) 部署 EJB 服务器项目 创建 EJB 客户端项目 配置客户端依赖项(WildFly 18 及更高版本…

使用Eclipse+GlassFish构建简单EJB

EJB,即企业级JavaBean。它是一个标准,而不是一个产品。其存在的目的是为后台开发人员提供一个标准的开发标准。它主要分成SessionBean,EntityBean和MessageDrivenBean。简而言之就是**服务器端**的一个标准。 在开发中我们需要先创建一个EJB项目,并在此…

ejb中sessionbean的见解

EJB学习笔记五(SessionBean的生命周期) 1.前言 前几篇主要介绍了有状态和无状态、远程和本地调用的SessionBean,这篇介绍一下有关SessionBean的生命周期。SessionBean处于EJB容器管理之下,对于客户端来说是完全透明的。但对于开…

理解EJB

转载: EJB到底是什么,真的那么神秘吗 1. 我们不禁要问,什么是”服务集群”?什么是”企业级开发”? 既然说了EJB 是为了”服务集群”和”企业级开发”,那么,总得说说什么是所谓的”服务 集群”和”企业…

EJB的理解

百科定义EJB: 被称为Java企业bean,服务器端组件,核心应用是部署分布式应用程序。用它部署的系统不限定平台。实际上ejb是一种产品,描述了应用组件要解决的标准 标准: 可扩展 (Scalable)分布式 (Distributed)事务处理(T…

认识EJB

一、定义 将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE中,这…

EJB到底是什么,真的那么神秘吗??

前言:网上看到的一篇博客,感觉还不错,转载过来和大家分享一下: 1. 什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发"&#xf…

EJB框架 详细介绍和注解的使用

一、EJB是什么? EJB是sun的JavaEE服务器端组件模型,是一种规范,设计目标与核心应用是部署分布式应用程序。EJB2.0过于复杂,EJB3.0的推出减轻了开发人员进行底层开发的工作量,它取消或最小化了很多(以前这些是必须实现)…

EJB到底是什么?(通俗易懂白话文)

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务 集群"和"企业级开发…

Http协议的组成

1、Http是什么 http是超文本传输协议,是互联网上应用最为广泛的一种网络协议。 2、Http协议的组成 Http协议是由Http请求和响应组成。当在浏览器中输入网址访问某个网站时,浏览器会将你的请求封装乘一个Http请求发送给服务器点,服务器接收到…

Http 协议, 前后端交互理解

目录 HTTP协议引入 HTTP的特征 http协议,以及从前后端交互角度去理解 无状态 无连接 客户端请求消息 服务器响应消息 HTTP 请求方法(常用款) HTTP 响应头信息 (常用款) HTTP 状态码 (常用款) 简单的写一个minihttp HTTP协议引入 http超文本传输协议, 是基…

HTTP协议版本检测

HTTP/2.0在2015年就已经正式发布了,但是现在大部分网站还在使用HTTP/1.1协议。具体怎么查看网站采用的是HTTP/1.1,还是HTTP/2.0呢,本篇就介绍几种检测HTTP协议版本的方法。 所有的操作都是基于Chrome浏览器,以本站 tiven.cn 为例。…

C++中的HTTP协议

1、HTTP Hyper Text Transfer Protocol(超文本传输协议)。是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外…

HTTP协议简单概述

学习目标 HTTP 协议概述 HTTP 请求响应 HTTP 请求方法 HTTP 响应方法 HTTP 消息报文之请求报文 HTTP 消息报文之响应报文 HTTP 消息报文之通用报文 URL ​ 我们更熟悉 URL(Uniform Resource Locator,统一资源定位符)。URL 正是使用 …

HTTP协议笔记

1、HTTP协议简介 1.1、什么是通信协议 官方理解:通信协议是指通信双方完成通信所必须遵守的规则和约定 通俗理解:通信双方采用约定好的格式来发送和接收消息,这种实现约定好的通信格式,就叫通信协议 例子:张三与李…

HTTP协议解析

文章目录 一、HTTP协议基础1、定义2、工作原理3、特点4、与Https的区别🐵HTTPS简介:两者区别: 二、HTTP请求协议1、HTTP请求结构:2、请求方法3、举例4、Post和Get的区别🌈 三、HTTP响应协议1、组成2、响应头3、状态码常…

http协议格式

文章目录 HTTP协议格式请求行首行:请求方法: 空行 \r\n:响应行首行头部: http协议介绍: HTTP 协议一般指 HTTP(超文本传输协议)。超文本传输协议(英语:HyperText Transfer Protocol&…

HTTP协议简单解释

简单的HTTP协议主要特点HTTP之URLURI和URL的区别HTTP之请求消息Request请求方法GET和POST的区别 HTTP之响应消息ResponseHTTP之状态码COOKIE和SESSION有什么区别CookieSession HTTP1.1HTTPS浏览器中输入一个URL发生什么?参考 简单的HTTP协议 HTTP协议是Hyper Text Transfer P…

HTTP协议详细讲解(完整版)

HTTP协议 1. HTTP协议的定义 HTTP协议(Hypertext Transfer Protocol,超文本传输协议),是一个客户端请求和回应的标准协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。用户输入地址和端口号之后就可…

JavaWeb——HTTP详解

文章目录 什么是HTTPHTTP发展阶段HTTP请求1.请求行请求方式 2.消息头 HTTP响应1.响应体2.响应状态码常见状态码HTTP状态码分类HTTP状态码列表: 什么是HTTP 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议&#…