sta*_*ker 2 weblogic jndi java-ee ejb-3.0
有没有办法在weblogic中查找EJB,如果它只实现本地接口?
如果我用这个
@Remote public interface TestSessionRemote {
public void businessMethod();
}
@Stateless(mappedName = "A")
public class TestSessionBean implements TestSessionRemote
{
public void businessMethod()
{
}
}
Run Code Online (Sandbox Code Playgroud)
可以使用以下名称查找EJB:
"A#" + TestSessionRemote.class.getName()
Run Code Online (Sandbox Code Playgroud)
如果我将TestSessionRemote的注释从@Remote更改为@Local,则EJB将从JNDI中消失.有没有解决的办法?
编辑:那时我正在使用Weblogic 10.3.x(又名11g).
不,这是不可能的.在WebLogic 10.3.x上部署EJB 3.0应用程序的上下文中,我一直在解决同样的问题.
该应用程序在Oracle Application Server 10.1.3和GlassFish 3.x上运行.
我们的应用程序使用当前应用程序服务器的查找机制,该机制在运行时确定.
在WebLogic Server 10.3中,EJB的本地接口:
@EJB注释将其注入servlet容器(servlet,过滤器等)和其他EJB中的托管类ejb-local-ref的元素web.xml或ejb-jar.xml声明查找所有查找的EJB是不切实际的.我们有192个无状态EJB,大多数是注入的,但很多都是从JNDI查找的,因为我们需要它们可用于非托管类.
除了试验和错误之外,我的此信息来源是WebLogic 10.3 EJB3 Local Lookup Sample.我找到的几乎所有其他内容(包括Oracle文档)都描述了JNDI查找语法,mappedName#fullInterface但并未明确只有远程接口名称在JNDI树中.
更新:我们使用了声明web.xml和ejb-jar.xml(是的,有些EJB使用在JNDI中查找其他EJB的实用程序类).从脚本开始从源生成它们然后手动编辑它们直到它们是正确的.不好但很必要.
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |