我对这个EJB概念很陌生。我被分配了一个任务来开发一个应用程序,它是netflix的副本。我们有两个模块:
如何为单个EJB排列桌面应用程序和基于Web的应用程序?
答案 0 :(得分:0)
因此,您在应用服务器(例如Glassfish,JBoss等)中部署了EJB,并且您希望来自桌面(J2SE)和Web(例如Tomcat)应用的客户端使用此(远程,当然)EJB。 / p>
如果这就是你所拥有的,你需要你的客户端使用JNDI连接到远程EJB,如下所示(JBoss示例):
try {
Context context = new InitialContext(getJNDISetup());
MyServiceEJBRemote delegate = (MyServiceEJBRemote)context.lookup(MY_SERVICEEJB_JNDI_NAME);
} catch (NamingException e) {
// log exception
}
private static Hashtable<?, ?> getJNDISetup() {
// perform jndi lookup with your favorite method, hashtable, properties file... in this case, hashtable.
Hashtable<String, String> setup = new Hashtable<String, String>();
setup.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
setup.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
setup.put("java.naming.provider.url","localhost:1099");
return setup;
}
根据您的应用服务器,您可能需要修改HashMap中定义的关键元素。
您的客户端(destkop,web)显然需要了解EJB接口。 Web服务器和桌面模块都需要app服务器命名库。