Задача состоит в том, чтобы попытаться напрямую подключиться к EJB без сохранения состояния, развернутому на Glassfish. Я уже сделал это через веб-службу, и я также могу подключиться к EJB, вызвав удаленный объект java, который использует JNDI для поиска и загрузки bean-компонента. Чего я не могу сделать, так это напрямую подключиться к EJB с помощью Blazeds. Я использую EBJ3Factory BY Ryan Norris (загруженный с сайта Adobe) следующим образом:
В моем WEB-INF / flex / services-config.xml есть;
<factories>
<factory id="ejb3" class="com.adobe.ac.ejb.EJB3Factory" />
</factories>
В моем WEB-INF / flex / remoting-config.xml есть;
<destination id="MyEJB">
<properties>
<factory>ejb3</factory>
<source>java:global/Together/PSearch!ejb.PSearch</source>
</properties>
</destination>
У меня есть простой java-класс, который может получить доступ к bean-компоненту, поэтому я могу использовать Blazeds для вызова класса, который затем вызывает bean-компонент;
public void getBean() {
PSearch search;
InitialContext ctx;
try {
ctx = new InitialContext();
search = (PSearch) ctx.lookup("java:global/Together/PSearch!ejb.PSearch");
System.out.println("jndi okay");
} catch (NamingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
Команда asadmin для контекста в glassfish показывает мне;
./asadmin list-jndi-entries --context java:global/Together
PSearch__3_x_Internal_RemoteBusinessHome__: javax.naming.Reference
PSearch!ejb.PSearchRemote: javax.naming.Reference
PSearch!ejb.PSearch: com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy
PSearch!ejb.PSearchLocal: com.sun.ejb.containers.JavaGlobalJndiNamingObjectProxy
Тем не менее, когда я использую Eclipse / Flash Builder для импорта службы BlazeDS, я получаю ошибку самоанализа;
java:global/Together/PSearch/!ejb.PSearch is not available in the specified location
Я также пробовал изменить remoting-config.xml так, чтобы он указывал на локальный и удаленный интерфейсы, но без радости!
Приветствуются любые указатели.