Java EJB远程调用查找Weblogic-Liferay

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

我是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
})
@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,可能是为了这个?