【发布时间】:2011-04-27 01:51:36
【问题描述】:
任务是尝试直接连接到部署在 Glassfish 上的无状态 EJB。我已经通过 Web 服务完成了这项工作,我还可以通过调用使用 JNDI 查找和加载 bean 的远程 java 对象来连接到 EJB。我不能做的是使用 Blazeds 直接连接到 EJB。我正在使用 Ryan Norris 的 EBJ3Factory(从 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>
我有一个可以访问 bean 的简单 java 类,因此我可以使用 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();
}
}
glassfish 中上下文的 asadmin 命令显示了我;
./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 和 remote 接口,但没有任何乐趣!
任何指针将不胜感激。
【问题讨论】:
标签: apache-flex glassfish blazeds