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

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查找:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSmVyb21lX3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

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

改动client代码:EJBCLient

 

public
class
EJBClient {

    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:\Java\jboss-4.2.2.GA\docs\examples\jca下找到相应数据库模版复制到桌面改动。

 

配置数据源

<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的驱动文件复制到server\default\lib,重新启动Jboss。

配置好,进行公布,将数据源公布到Jboss,将数据源文件复制到server\default\deploy控制台提示公布成功。能够在信息里看到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>

EJB通过注解方式注入并使用其它EJB或者服务、配置JBoss数据源的更多相关文章

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

    通过注解方式注入并使用其他EJB或者服务 真实项目EJB对象很多,EJB之间也可以互相调用, 在项目HelloWorld下新建接口Other在cn.hqu.ejb3下: public interfac ...

  2. spring注解方式注入

    1.通过Resource注入 1.在属性上注入 1.默认注入 即不指定spring容器里面的名字 匹配规则:先通过属性的名字查找 再通过属性类型与实现类类型匹配查找 当有两个实现类会报错 2.通过指定 ...

  3. Spring第七弹—依赖注入之注解方式注入及编码解析@Resource原理

        注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果. 手工装配依赖对象  手工装配依赖对象,在这种方式中又有两种编 ...

  4. spring注解方式注入bean

    用注解的方式注入bean,spring的配置文件也要增加一些约束和导入注解所在的包 applicationContext.xml <?xml version="1.0" en ...

  5. EJB配置jboss数据源

    1.数据源的模板在\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\docs\examples\jca\下2.编辑数据源文件,比如mysql-ds.xml,命名规则是名称-ds. ...

  6. Spring使用注解方式注入多例的方式

    目前Spring+Netty的开发方式这么火热,想把Netty注册成Spring组件就一定得用多例的方式,我不由得想吐槽明明这么常见的需求网上相关博客都少的很,这里给出Spring使用注解注入多例的方 ...

  7. Ibatis,Spring整合(注解方式注入)

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  8. 关于spring的注解方式注入默认值(转) -- 首字母小写

    1.是首字母小写 比如 UserAction对应的id是userAction 可以通过ApplicationContext 对象的act.getBean("userAction") ...

  9. spirngboot 注解方式注入自定义参数

    在代码中 @value("oracle.user") private String user; 在配置文件中 oracle.user=root

随机推荐

  1. Google protocol buff使用

    Protocol Buffer使用简介 我们项目中使用protocol buffer来进行服务器和客户端的消息交互,服务器使用C++,所以本文主要描述protocol buffer C++方面的使用, ...

  2. 同样的WiFi,手机能连上网,电脑不能。错误代码DNS_PROBE_POSSIBLE

    今天电脑不知打为撒,出了这样个毛病,原因不明.先试着用电脑管家修复,无效.找了网上的很多办法,排除了dns.ip之类的问题.最后在贴吧里看到大神的解决办法,实测简单有效.链接http://tieba. ...

  3. js中的事件委托技术

    1.什么是事件委托:通俗的讲,时间就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个时间本来是加在某些元素上的,然而你却加到别人身上来做,完成这 ...

  4. Web存储机制—sessionStorage,localStorage使用方法

    Web存储机制,在这里主要聊有关于Web Storage API提供的存储机制,通过该机制,浏览器可以安全地存储键值对,比使用cookie更加直观.接下来简单的了解如何使用这方面的技术. 基本概念 W ...

  5. P4138 [JOISC2014]挂饰

    P4138 [JOISC2014]挂饰 ◦          N个装在手机上的挂饰.挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上.直接挂在手机上的挂件最多有1个. ...

  6. 转: 动态加载、移除js、css文件

    function loadjscssfile(filename, filetype){ if (filetype=="js"){ var fileref=document.crea ...

  7. 深入理解python中函数传递参数是值传递还是引用传递

    深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用 ...

  8. HBase 参考信息

    Apache HBase Region Splitting and Merging  https://blog.cloudera.com/apache-hbase-region-splitting-a ...

  9. react中递归生成列表

    import React, {Component} from 'react'; import { Menu, Icon } from 'antd'; import {Link} from 'react ...

  10. finereport 通过条件弹出 alert进行提示

    function convertDateFromString(dateString) { if (dateString) { var date = new Date(dateString.replac ...