簡體   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