Задача состоит в том, чтобы попытаться напрямую подключиться к EJB без состояния, развернутому на Glassfish.Я уже сделал это через веб-сервис, и я также могу подключиться к EJB, вызвав удаленный объект Java, который использует JNDI для поиска и загрузки bean-компонента.Что я не могу сделать, так это напрямую подключиться к EJB с Blazeds.Я использую EBJ3Factory BY Райана Норриса (скачано с сайта Adobe) следующим образом:
My WEB-INF / flex / services-config.xml has;
<factories>
<factory id="ejb3" class="com.adobe.ac.ejb.EJB3Factory" />
</factories>
My 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 для вызова классакоторый затем вызывает бин;
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 , чтобы он указывал на local и удаленные интерфейсы, но не радость!
Любые указатели будут с благодарностью.