繁体   English   中英

如何对客户端应用程序和Web应用程序都使用单个EJB

[英]How to Use single EJB for both client application and Web application

我对这个EJB概念非常陌生。 我分配了一个任务来开发一个应用程序,该应用程序是netflix的副本。 我们有两个模块:

  • 所有者将拥有一个桌面应用程序
  • 用户将拥有Web应用程序。

如何为单个EJB排列桌面应用程序和基于Web的应用程序?

因此,您在应用服务器(例如Glassfish,JBoss等)中部署了EJB,并且希望桌面(J2SE)和Web(例如Tomcat)应用中的客户端使用该EJB(当然是远程的)。

如果是这样,则需要您的客户端使用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服务器和桌面模块都将需要应用服务器命名库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM