Java:JEE环境中资源获取的一些方式的说明

27 篇文章 0 订阅

 目录

1、不使用@Resource如何获取EJBContext/SessionContext/MessageDrivenContext的实例?

2、已通过@Resource注入的但没有定义name属性的资源如何使用JNDI访问?

3、如何获取TimerService实例?


1、不使用@Resource如何获取EJBContext/SessionContext/MessageDrivenContext的实例?

Context ctx = new InitialContext();
MessageDrivenContext context = (MessageDrivenContext) ctx.lookup("java:comp/EJBContext");

2、已通过@Resource注入的但没有定义name属性的资源如何使用JNDI访问?

使用

java:comp/env/fully-qalified-class-name/variable-name

或者 

java:comp/env/fully-qalified-class-name/property-name

例如:

@Stateless
public class HelloBean implements com.foo.ejb.HelloRemote {
@Resource
private SessionContext sctx;

public void hello() {
  try {
	 InitialContext ic = new InitialContext();
	 SessionContext sctxLookup =
		 (SessionContext) ic.lookup("java:comp/env/com.foo.ejb.HelloBean/sctx");
	 System.out.println("look up injected sctx by default name: " + sctxLookup);
  } catch (NamingException ex) {
	 throw new IllegalStateException(ex);
  }
}

3、如何获取TimerService实例?

Context ctx = new InitialContext();
TimerService context = (TimerService) ctx.lookup("java:comp/TimerService");


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值