• EJB通过注解方式注入并使用其它EJB或者服务、配置JBoss数据源


    版权声明:本文为博主原创文章,转载请注明出处。

    https://blog.csdn.net/Jerome_s/article/details/37103171

    通过注解方式注入并使用其他EJB或者服务

    真实项目EJB对象非常多,EJB之间也能够互相调用,

    在项目HelloWorld下新建接口Other 在cn.hqu.ejb3下:

    public interface Other {

        public abstract String sayMe();

    }

     

     

    新建实现类OtherBean在cn.hqu.ejb3下:

    public class OtherBean implements Other {

        @Override

        public String sayMe() {

            return "Other";

        }

    }

     

     

    将Javabean变成无状态会话bean,接口默认是本地接口:

    @Stateless

    public class OtherBean implements Other {

        @Override

        public String sayMe() {

            return "Other";

        }

    }

     

    在HelloWorldBean调用OtherBean里面的方法。

    获取OtherBean里面的方法:

    得到一个EJB对象採用两种方法:採用JNDI查找。採用依赖注入。

    通过JDNI查找:

    把EJB部署到Jboss:执行Ant。deploy。

    改动client代码:EJBCLient

     

    public classEJBClient {

        public static void main(String[] args) {

           try {

               InitialContextctx = newInitialContext();

               HelloWorldhelloworld = (HelloWorld) ctx

                      .lookup("HelloWorldBean/remote");

               System.out.println(helloworld.sayHello("注入的苏志达"));

           }catch(NamingException e) {

               e.printStackTrace();

           }

        }

    }

    执行main输出:注入的苏志达说:你好!

    Other,

    调用成功。

    代码:http://pan.baidu.com/s/1mgjxXt2

    採用依赖注入的方式:


    执行ant部署。执行clientmain,调用成功。

     

    在项目中假设要使用别的EJB能够使用注入的方式。

    @EJB Other other。

    可是假设EJB找到这个接口被两个类实现了,会报错,由于它不知道我们要注入哪一个。

     

    解决的方法:比方要注入的是OtherBean 那么能够使用

    @EJB(beanName="OtherBean")Other other;明白指定要注入的的EJB,就不会出现上诉的问题。

    @EJB仅仅能注入EJB,其他的比方定时服务 用 @Resource TimerService timerService;

    注入数据源也是使用@Resource

    @Resource(mappedName="") DataSource dataSource;

    mappedName用来指定数据源的JNDI名称。

     

    配置jboss数据源

    数据源能够降低数据库连接对象创建的数量。来提升系统的执行性能。

             在Jboss创建数据源:

    数据库的配置模版在F:Javajboss-4.2.2.GAdocsexamplesjca下找到相应数据库模版复制到桌面改动。

     

    配置数据源

    <datasources>

      <local-tx-datasource>

        <jndi-name>hquDS</jndi-name>

       <connection-url>jdbc:mysql://localhost:3306/hqutest</connection-url>

       <driver-class>com.mysql.jdbc.Driver</driver-class>

        <user-name>root</user-name>

        <password>jerome</password>

     

    将Mysql的驱动文件复制到serverdefaultlib,重新启动Jboss。

    配置好,进行公布,将数据源公布到Jboss,将数据源文件复制到serverdefaultdeploy控制台提示公布成功。能够在信息里看到JNDI name。

     

    进入Jboss控制台http://localhost:8080/jmx-console能够看到我们刚刚公布的数据源:在jboss.jca下。

    在jboss.jca下name=hquDS,service=ManagedConnectionPool点击进去控制台配置最小最大连接数等等信息重新启动Jboss配置就不见了,

    能够通过mysql-ds.xml配置如配置最小最大连接数在<password>jerome</password>以下增加

       <password>jerome</password>

       <min-pool-size>3</min-pool-size>

       <max-pool-size>100</max-pool-size>

  • 相关阅读:
    基于visual Studio2013解决C语言竞赛题之0303最大数
    基于visual Studio2013解决C语言竞赛题之0302字符数出
    基于visual Studio2013解决C语言竞赛题之0301函数求值
    基于visual Studio2013解决C语言竞赛题之0205位数求和
    基于visual Studio2013解决C语言竞赛题之0204实数求值
    基于visual Studio2013解决C语言竞赛题之0203格式化输出
    购物车的功能——JS源码
    购物车的功能——CSS源码
    购物车的功能——CSS源码
    购物车的功能——CSS源码
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10967831.html
  • Copyright © 2020-2023  润新知