EJB通过注解方式注入并使用其他EJB或者服务、配置JBoss数据源
2014-07-05 22:25
573 查看
通过注解方式注入并使用其他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。
修改客户端代码: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部署,执行客户端main,调用成功。
在项目中如果要使用别的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数据源
- 通过注解方式注入并使用其他EJB或者服务
- (4)通过注解方式 注入并使用 其他EJB或者服务
- 通过注解方式在ejb中注入其它ejb或者服务
- 关于使用TCP或者其他链接方式时数据接收问题
- Struts其他-使用注解方式进行配置实例
- Spring使用注解的方式注入属性时的xml文件配置
- 从头认识Spring-2.3 注解装配-@autowired(2)-通过set方法或者其他方法注入
- 从头认识Spring-2.4 基于java的标准注解装配-@Inject(2)-通过set方法或者其他方法注入
- Spring+SpringMVC+Mybatis使用注解方式配置双数据源
- 原始方式:spring四种依赖注入方式 |注解方式:Spring零配置通过注解实现Bean依赖注入
- spring通过注解依赖注入和获取xml配置混合的方式
- Spring通过XML配置c3p0连接池和dao层注解注入使用 jdbcTemplate
- Spring零配置通过注解实现Bean依赖注入总结<转>
- winform下通过webclient使用非流方式上传(post)数据和文件
- 一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过配置文件方式(六)
- action控制层,使用spring注解方式注入业务bean报空指向错误
- entlib 5.0学习笔记 通过配置方式实现注入
- 数据/配置 的存储方式 Json篇 以JsonCpp库使用为例
- 程序使用 HTTP 协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成