У меня есть два экземпляра TomEE (в настоящее время разные контейнеры), и я хочу, чтобы между ними работал Remote EJB.Однако у меня возникают проблемы с этим.
Сначала я включил поддержку удаленного EJB на экземплярах TomEE.Я добавил следующее в файл system.properties.На основе этой темы Удаленный поиск EJB с использованием OpenEJB в Tomee
tomee.remote.support = true
tomee.serialization.class.blacklist = -
tomee.serialization.class.whitelist = *
openejb.system.apps = true
openejb.servicemanager.enabled = true
Мой сервер TomEE Ear успешно развернут, и я могу видеть имена JNDI моих удаленных Ejbs.
INFO: Extracting jar: /usr/local/tomee/apps/simpleEJB-ear-1.0.ear
INFO: Extracted path: /usr/local/tomee/apps/simpleEJB-ear-1.0
INFO: Found EjbModule in classpath: /usr/local/tomee/apps/simpleEJB-ear-1.0/simpleEJB-ejbs-1.0.jar
INFO: Configuring enterprise application: /usr/local/tomee/apps/simpleEJB-ear-1.0
INFO: Enterprise application "/usr/local/tomee/apps/simpleEJB-ear-1.0" loaded.
INFO: Creating dedicated application classloader for simpleEJB-ear-1.0
INFO: Assembling app: /usr/local/tomee/apps/simpleEJB-ear-1.0
INFO: Jndi(name=global/simpleEJB-ear-1.0/simpleEJB-ejbs-1.0/HelloImpl!com.wk.Hello) --> Ejb(deployment-id=HelloImpl)
INFO: Jndi(name=global/simpleEJB-ear-1.0/simpleEJB-ejbs-1.0/HelloImpl) --> Ejb(deployment-id=HelloImpl)
INFO: Deployed Application(path=/usr/local/tomee/apps/simpleEJB-ear-1.0)
Теперь, когда я выполняю поиск из другого экземпляра TomEE, я получаю исключения RemoteEJBException.Ниже приведен мой клиентский код, развернутый на TomEE, который ищет указанный Remote EJB:
@PostConstruct
public void init() {
Properties props = new Properties();
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
p.put(Context.PROVIDER_URL, "http://172.17.0.2:8080/tomee/ejb");
InitialContext ic = new InitialContext(props);
//hello = (com.wk.Hello) ic.lookup("com.wk.Hello");
hello = (com.wk.Hello) ic.lookup("com.wk.Hello");
}
Однако поиск завершается неудачно со следующим исключением:
Caused by: javax.ejb.EJBException: javax.naming.NameNotFoundException: Name [com.wk.Hello] is not bound in this Context. Unable to find [com.wk.Hello].
Чего мне не хватает, чтобы получитьэто работает?Моя цель - переместить некоторые из наших приложений JavaEE с Glassfish на TomEE, поэтому я работаю над POC, чтобы посмотреть, как определенные функции JavaEE будут работать под TomEE.
Любая помощь будет принята с благодарностью.Спасибо!