在没有JNDI-Lookup的情况下按名称访问会话bean

时间:2012-11-09 17:43:23

标签: java-ee glassfish ejb spring-el

我想为Spring Expression Language编写一个自定义BeanResolver来解析表达式中的EJB(例如"@MyBean.property=='example-value'")。如何在不进行JNDI-Lookup的情况下通过其名称检索bean?我是否必须为我选择的应用服务器编写一个插件(这将是glassfish)?

1 个答案:

答案 0 :(得分:2)

EE注入和JNDI查找是所有EJB的入口点;没有其他标准方法可以获取EJB的实例。如果您正在使用EJB 3.1,java:globaljava:appjava:module中的绑定是明确定义的,开发人员无法更改。

java:global/MyApp/MyModule/MyBean!com.example.MyIntf
java:app/MyModule/MyBean!com.example.MyIntf
java:module/MyBean!com.example.MyIntf

这有效地按名称查找EJB。 (它确实需要JNDI,但是从你的描述中不清楚为什么JNDI本身会有问题,尽管我确实理解为什么绑定是一个问题。)如果你知道EJB只支持一个接口,你可以省略!com.example.MyIntf