【问题标题】:EJB, WebService combined with JNI scenarioEJB、WebService结合JNI场景
【发布时间】:2016-08-12 17:39:25
【问题描述】:

我正在做一个项目,我必须决定将 EJB、Webservices 或 EJB 与 @WebService 结合使用。我是 Java EE 的新手,我喜欢 EJB 的概念,但我还想为非 Java 系统提供一种使用此服务的方法。以下是有关主要组件的事实:

  • 有些组件必须与数据库交互(简单的 DAO)和更多的聚合插入。只能从其他 java 组件调用它们
  • 我有一些组件,它们在应用程序服务器上使用共享库进行复杂的计算。该库依赖于两个本机库。所以我必须使用JNI。他们说,在文献中,不建议将 EJB 和本机库一起使用(我不知道为什么)。但在这种情况下,我没有其他机会。这些组件需要与 DAO 交互,并且必须可用于非 Java 应用程序。
  • 最终的架构应该是可扩展的(在 EJB 中使用计时器服务或其他一些功能)

计划是在 EJB 中实现所有这些组件,但本机库的这一点让我感到困惑。所以我现在的问题是:

  • 我应该如何实现包含所有数据库内容的组件? (我会使用 EJB,因为池和事务的东西)
  • 我应该如何实现组件,这些组件通过 JNI 使用本机库,但还必须与数据库交互? (Jax-WS WebService,EJB 声明为 JAX-WS 服务?

另一种选择是将所有内容放在一个 WebService 中。但我不喜欢这种方法,因为 EJB 中的事务性池优势和有限的可扩展性。所以我会很感激,如果你能给我你的意见,你将如何实施这个项目。

【问题讨论】:

    标签: web-services jakarta-ee ejb


    【解决方案1】:

    这是我的建议,但我也是 JavaEE 的初学者,所以可能还有其他方法。

    你需要先建立

    在父 POM 项目中使用 Maven 来创建父 POM,放置所有依赖项,然后创建一个类似的模块

    parent-project[pom]:
         project-name-data.jar
         project-name-services.jar
         project-name-webservice.war
         project-name-ui.war
    

    通过这种方式,您可以在应用程序中使用所有共享库。

    我应该如何实现包含所有数据库内容的组件? (我会使用 EJB,因为池和事务的东西)

    它将在 project-name-data.jar 中完成并在 project-name-services.jar

    上实现

    我应该如何实现组件,这些组件通过 JNI 使用本机库,但还必须与数据库交互? (Jax-WS WebService,EJB 声明为 JAX-WS 服务?

    它将在project-name-webservice.war中通过添加JAX-WS服务,project-name-services.jar依赖来实现。

    在您的 project-name-ui.war 中添加 project-name-webservice.war 的依赖项以正常运行您的应用程序。

    如果你不清楚这一点,那么click here。这是我使用 EJB、Jax-RS 和其他库的个人试用。希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      相关资源
      最近更新 更多