IDEA使用JBoss7.1.1容器启动EJB项目Demo

导读:本篇文章讲解 IDEA使用JBoss7.1.1容器启动EJB项目Demo,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

        今年是2022年了,现在用到EJB架构的项目已经不多了,多是遗留的老项目,这不,手头就遇到一个。找了一些资料,自己也手动练习一下基础的搭建。

        在开始,介绍一下搭建环境使用的工具及版本:

  •  JDK版本:jdk1.7.0_64
  •  JBOSS版本:jboss-as-7.1.1.Final
  •  开发工具:IDEA 2018.3

 关于JBoss安装搭建参考:jboss-as-7.1.1.Final安装及控制台登录(windows环境)

下面正式开始环境搭建工作。

1.创建一个Java项目

(1)File -> New -> Project -> Java

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(2)Jdk选择1.7的版本,next ->

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 (3)直接 next ->

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(4)编辑 Project Name(项目名称 )、Project location(项目路径),点击 Finish 完成项目创建。 

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(5)如果出现下面弹窗,选择 “OK”. 

IDEA使用JBoss7.1.1容器启动EJB项目Demo

现在创建的只是一个空的java项目,下面开始增加模块。

2.在EJBDemo下创建一个服务 Module,名称EJBServer

(1)选择刚才创建的项目,右键 -> New -> Module

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(2)按照如下步骤选择配置项:最后点击 Next。 

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(3)编辑项目模块名称, 点击 Finish 完成模块创建。

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(4)创建完成后的文件目录如下:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

3.编写服务代码 

(1)创建接口文件 HelloWorld.java

package com.ejb.server;

import javax.ejb.Remote;

@Remote
public interface HelloWorld {

    public String hello(String word);
}

(2)创建无状态bean文件 HelloWorldBean.java

这个可以根据接口来创建无状态的Bean类,如下截图操作步骤:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

命名只用输入接口类名称就行:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 代码如下:

package com.ejb.server;

import javax.ejb.Stateless;

@Stateless(name = "HelloWorldEJB")
public class HelloWorldBean implements HelloWorld{
    public HelloWorldBean() {
    }

    @Override
    public String hello(String word) {
        return "hello " + word;
    }
}

创建完成后的目录结构如下:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

4.启动服务

(1)配置JBoss服务

选择JBoss服务,创建 Local 服务,重新命名 EJBServer

IDEA使用JBoss7.1.1容器启动EJB项目Demo

“Server”页签的配置:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

“Deployment”页签的配置:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(2)启动项目:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

打印如下日志则表示成功:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 =======================================================================

如果出现如下报错:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

那是因为IDEA环境中有JDK版本未设置,修改以下两个地方:

第一个:File -> Project Structure

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 第二个:File -> settings -> Build,Execution,Deployment -> Compiler -> Java Compiler

IDEA使用JBoss7.1.1容器启动EJB项目Demo

  =======================================================================

 (3)控制台验证

浏览器输入 http://localhost:8080  打开控制台页面:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

点击“Adminstrator Console” 出现下面输入账号密码页面,输入JBoss设置的管理员账号密码

IDEA使用JBoss7.1.1容器启动EJB项目Demo

看到发布的服务已经在列表中:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 5.在EJBDemo下创建一个客户端 Module,名称EJBClient

(1)创建项目

注意:这里创建 Java 项目就可以了。

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 编辑工程名称:IDEA使用JBoss7.1.1容器启动EJB项目Demo

 (2)在项目下创建目录 lib

在lib目录引入jar包,一个是EJBServer项目lib目录下的 javax.ejb-api.jar, 另一个是在Jboss中,目录是 C:\Java\JBoss\jboss-as-7.1.1.Final\bin\client\jboss-client.jar

IDEA使用JBoss7.1.1容器启动EJB项目Demo

 (3)将EJBServer项目src下的文件拷贝到EJBClient 下

(4)在EJBClient 项目src下创建客户端测试类

测试类com.ejb.client.HelloWorldClient.java

package com.ejb.client;

import com.ejb.server.HelloWorld;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Properties;

public class HelloWorldClient {
    public static void main(String[] args) throws NamingException {
        Properties props = new Properties();
        props.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");
        props.put("jboss.naming.client.ejb.context",true);
        try {
            InitialContext ctx = new InitialContext(props);

            String appName = "";
            String moduleName = "EJBServer_war_exploded";
            String distinctName = "";
            String beanName = "HelloWorldEJB";
            String viewClassName = HelloWorld.class.getName();
            String namespace = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName;
            //String namespace = "ejb:/EJBServer_war_exploded/HelloWorldEJB!com.ejb.server.HelloWorld";
            HelloWorld helloworld = (HelloWorld) ctx.lookup(namespace);
            System.out.println(helloworld.hello("New World"));
        } catch (NamingException e) {
            e.printStackTrace();
        }

    }
}

上述参namespace就是EJBserver启动时,控制台打印项“java:jboss/exported”后的内容:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(5)在src下增加配置文件jboss-ejb-client.properties,内容如下:

endpoint.name=client-endpoint
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_NOANONYMOUS=false
remote.connection.default.username=admin
remote.connection.default.password=123456

(6)文件目录如下:

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(7)执行main方法

IDEA使用JBoss7.1.1容器启动EJB项目Demo

(完)

测试代码下载:1.1.EJBDemo源代码7

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/62168.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!