Saj*_*jee 7 java weblogic stateless-session-bean ejb-3.0 weblogic-10.x
我有一个EJB定义如下:
package com.foo;
@Stateless (mappedName="HelloWorld")
public class HelloWorldBean implements HelloWorld, HelloWorldLocal
....
Run Code Online (Sandbox Code Playgroud)
当它部署到Weblogic(WL)时,它获得名称myBean.我不确定这是否重要.
我尝试使用以下代码调用bean:
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, "t3://localhost:7001");
ic = new InitialContext(ht);
tp = (HelloWorld) ic.lookup("HelloWorld#com.foo.HelloWorldBean");
Run Code Online (Sandbox Code Playgroud)
任何人都知道我为什么会收到以下错误?
javax.naming.NameNotFoundException: While trying to lookup 'HelloWorld#com.foo.HelloWorldBean' didn't find subcontext 'HelloWorld#com'.
Resolved '' [Root exception is javax.naming.NameNotFoundException: While trying
to lookup 'HelloWorld#com.foo.HelloWorldBean' didn't find
subcontext 'HelloWorld#com'. Resolved '']; remaining name 'HelloWorld#com/foo/HelloWorldBean'
Run Code Online (Sandbox Code Playgroud)
Pas*_*ent 10
查找会话bean的远程接口与多个远程业务接口(例如com.acme.FooBusiness1,com.acme.FooBusiness2),你需要查找的目标EJB的全局JNDI名称(该组合获得的名字mappedName()中@Stateless)和特定的远程业务接口,通过分离"#":
InitialContext ic = new InitialContext();
FooBusiness1 bean1 = (FooBusiness1) ic.lookup("FooEJB#com.acme.FooBusiness1");
FooBusiness2 bean2 = (FooBusiness2) ic.lookup("FooEJB#com.acme.FooBusiness2");
Run Code Online (Sandbox Code Playgroud)
在只有一个远程业务接口的bean的典型情况下,不需要这个完全限定的表单.在这种情况下,bean的JNDI名称可以直接使用:
FooBusiness bean = (FooBusiness) ic.lookup("FooEJB");
Run Code Online (Sandbox Code Playgroud)
那是理论部分.现在的做法.在你的情况下,从我所看到的,你是从Weblogic访问EJB所以我宁愿使用no-arg InitialContext()构造函数(并使用jndi.properties配置文件用于其他环境),但这只是一个侧面说明.然后,您应该查找com.foo.HelloWorld远程接口,而不是com.foo.HelloWorldBean实现:
InitialContext ic = new InitialContext();
(HelloWorld) ic.lookup("HelloWorld#com.foo.HelloWorld");
Run Code Online (Sandbox Code Playgroud)
如果您的bean只有一个远程业务接口,这应该工作:
(HelloWorld) ic.lookup("HelloWorld");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38317 次 |
| 最近记录: |