美文网首页Java
在Eclipse中开发第一个EJB程序

在Eclipse中开发第一个EJB程序

作者: ac5298ace101 | 来源:发表于2019-08-09 20:59 被阅读2次

    EJB要部署在JBoss上,所以需要提前安装JBoss Tool工具(其实你也可以不安装该插件,但是现在我还没有探索出不安装插件的方法)

    如果没有安装JBoss Tool插件的话这篇文章可以帮到你

    Jboss Tool在Eclipse中的安装

    1,编写服务端项目。

    首先默认你的Eclipse已经安装了JBoss Tool插件,并且可以成功启动JBoss。

    编写服务端

    File->New->Other->在Wizards搜索EJB ->选择EJB Project

    Next

    项目名称是【Server】

    EJB选择3.0版本。其实3.1也没事

    点击finish

    2,编写无状态bean

    在Server文件夹中找到ejbModuule

    右击新建EJB(Session Bean)

    弹出新建立的窗口,填入以下信息

    Java Package【com.ejb.calculator】

    Class Name【Calculator】

    选择【Stateless】(一定选择无状态,有状态会有变化)

    选择【Remote】远程bean

    完成之后一个接口CalculatorRemote,一个类Calculator

    在接口增加一个方法:求和运算

    接口

    在子类中进行实现

    子类

    3,将编写的ejb发布到JBoss服务器中

    右键项目

    如果出现以下信息表示ejb项目部署成功

    但是在部署的时候并不顺利,可能出现以下错误信息


    java.lang.UnsupportedClassVersionError: com/ejb/calculator/Calculator : Unsupported major.minor version 52.0

    表示你的项目编译用的JDK1.8,但是你在JBoss运行时用的是JDK 1.7。所以会出现以下错误信息。

    解决方案是在右键项目Properties,将Java Complier的Compiler compliance lever改为1.7

    重新右键项目Run on server

    好了如果没有出现错误信息,则表示已经成功部署在JBoss服务器上

    3,编写客户端项目

    新建立一个普通的Java Project

    取名字为EJBClient,在src目录下建立com.ejb包,建立Client类

    a,添加Server项目到classpath

    右键EJBClient项目,点击Build Path->Configure Builder Path->Project

    将Server的工程添加到类路径

    然后OK就可以了

    b,将JBoss中的jboss-client.jar包含进来

    点libraries->Add External JARs选择你的JBoss Client的目录

    我的是在D:\JBoss\jboss-as-7.1.1.Final\bin\client

    4,在CLient.java中写测试函数


    public class Client {

    public static void main(String[] args) {

    Properties jndiProperties = new Properties();

    jndiProperties.put("jboss.naming.client.ejb.context", true);

    jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");

    try {

    Context context = new InitialContext(jndiProperties);

    final String appName = "";

    final String moduleName = "Server";

    final String distinctName = "";

    final String beanName = Calculator.class.getSimpleName();

    final String interfaceName = CalculatorRemote.class.getName();

    Object obj = context.lookup(

    "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName);

    System.out.println(obj);

    CalculatorRemote hwr = (CalculatorRemote) obj;

    System.out.println(hwr.getClass());

    int res = hwr.add(1, 3);

    System.out.println(res);

    } catch (NamingException e) {

    e.printStackTrace();

    }

    }

    }

    将jboss-ejb-client.properties文件写入src目录中(注意文件名字只能是这个,否则不能识别,还是加入src目录其实已经自动加入类路劲中)

    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

    5,启动Client

    Run As->Java Application

    出现以下信息就证明已经测试成功。

    相关文章

      网友评论

        本文标题:在Eclipse中开发第一个EJB程序

        本文链接:https://www.haomeiwen.com/subject/fgtgdctx.html