使用IDEA和WildFly搭建EJB服务

我也不知道为什么有这迷之需求

但是有这种需求就要试做一波

前期的准备工作

下载Wildfly
网址 http://wildfly.org/downloads/
在这里我选择了这个

Wildfly

下载解压


解压到目录

建立服务端

打开IDEA,写文章时候我使用的IDEA版本是2018.1.6 Ultimate版,JDK版本是1.8

勾选Web Application和EJB


image.png

image.png

Library那里选择Create选中wildfly目录下的jboss-modules.jar

取个名然后finish

创建一个接口类


image.png

创建一个Stateless Session Bean
很大可能会这样


image.png

然后解决方法就emmm(这么粗暴真的好嘛)


image.png

image.png

OK然后我们写一点东西

代码像这样

package test;

import javax.ejb.Remote;

@javax.ejb.Stateless(name = "HelloBeanEJB")
@Remote(Hello.class)
public class HelloBeanBean implements Hello {
    public HelloBeanBean() {
    }

    @Override
    public String say() {
        return "Hello World";
    }
}

在Run菜单里面找到Edit Confgure

image.png

image.png

运行一哈如果看到控制台里面有这些,基本上可以了


image.png

编写客户端

需要新建一个工程

把wildfly目录下的\bin\client\jboss-client.jar拷贝到项目的lib目录下然后Add as Library

将Hello.java复制过来,注意要保证包名一致

image.png

在src目录下建立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 = 8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

新建一个类

import test.Hello;

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

public class Main {
    public static void main(String[] args) {
        final Hashtable<String, String> jndiProperties = new Hashtable<>();
        jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
        try {
            final Context context = new InitialContext(jndiProperties);
            Hello hello = (Hello) context.lookup("ejb:/Server_war_exploded/HelloBeanEJB!test.Hello");
            System.out.println(hello.say());
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}

运行


image.png

看到预期输出,完成环境搭建

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ANT build.xml文件详解(一) Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用...
    SkTj阅读 4,049评论 0 2
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 1,182评论 1 0
  • 1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标...
    michaelgong阅读 847评论 0 1
  • 你今年5岁半了,在我忙碌的日子里,你悄悄长大了,在你成长的日子里,母亲是一个什么样的角色呢?有时候我会在回家的路上...
    左手可乐右手可可阅读 306评论 0 0