Java EJB远程调用查找Weblogic-Liferay
我是EJB新手,我正在尝试从Liferay使用远程EJB。EJB部署在WebLogic上,Im使用t3客户端(wlthint3client.jar)。 EJB的部分代码是:Java EJB远程调用查找Weblogic-Liferay,java,liferay,weblogic,ejb-3.0,Java,Liferay,Weblogic,Ejb 3.0,我是EJB新手,我正在尝试从Liferay使用远程EJB。EJB部署在WebLogic上,Im使用t3客户端(wlthint3client.jar)。 EJB的部分代码是: Stateless(name = "myDataEJB", mappedName = "ejb/MyDataEJB", description = "Get important Data") @Remote({ MyDataEJB.class, SecurityContext.class }) @RolesA
Stateless(name = "myDataEJB", mappedName = "ejb/MyDataEJB",
description = "Get important Data")
@Remote({
MyDataEJB.class,
SecurityContext.class
})
@RolesAllowed({
"MyRole"
})
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class MyDataEJBEJBImpl extends TheBaseSpringSecurityEJB implements MyDataEJBEJB {
//some stuff
下面是Liferay的代码:
Properties p = new Properties();
p.put(Context.PROVIDER_URL, "t3://someip:someip,anotherip:anotherport");
p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
p.put(Context.SECURITY_PRINCIPAL, "some");
p.put(Context.SECURITY_CREDENTIALS, "somepass");
try {
Context ctx = new InitialContext(p);
MyDataEJB mydataEJB =
(MyDataEJB)ctx.lookup("ejb/MyDataEJB#com.company.proyect.worker.ejb.MyDataEJB");
我明白了:
javax.naming.NameNotFoundException: While trying to lookup 'ejb.MyDataEJB#com.company.proyect.worker.ejb.MyDataEJB' didn't find subcontext 'MyDataEJB#com'. Resolved 'ejb'[Root exception is javax.naming.NameNotFoundException:While trying to lookup 'ejb.MyDataEJB#com.company.proyect.worker.ejb.MyDataEJB' didn't find subcontext 'ejb.MyDataEJB#com.Resolved 'ejb'] remaining name 'ejb.MyDataEJB#com/company/proyect/worker/ejb/MyDataEJB''
你知道发生了什么事吗
我查找的模式ejb/MyDataEJB#com.company.proyect.worker.ejb.MyDataEJB
是否错误?
非常感谢!:) 尝试使用
MyDataEJB MyDataEJB=
(MyDataEJB)ctx.lookup(“ejb/MyDataEJB”)
因为您的EJB是由JNDI中的EJB/MyDataEJB映射的。谢谢您的回复,我无法解析EJB.MyDataEJB,它们位于不同的服务器中,我的客户端和MyDataEJB,可能是为了这个?