0

在我们的系统中,我们有一个遗留的独立 java 应用程序,我们正在尝试将其提供给我们正在开发的新 web 应用程序,这些应用程序都在服务器中运行(fe Tomcat) 为了使对该应用程序的请求更轻,我们考虑将它们直接发送到相同的 vm 使用 jndi 而不是开发 web 服务接口。

我想在一些 webapp 上下文中启动这个应用程序环境,并使一些 API 可用于其他 webapps 并调用接口的方法。

当由于依赖项版本之间的不兼容而遇到更多问题时,我无法在 Tomcat 的只读上下文中通过 JNDI 绑定此对象,而无需在 Common lib 中添加应用程序。也许最好的解决方案是将这些接口部署为 EJB,因此我将使用 Java EE 服务器而不是 servlet 容器。或者,也许我会使用其他一些框架,例如 Camel 或其他东西。

在此先感谢,任何建议都会有所帮助。

4

1 回答 1

3

我建议将您的遗留 Java 接口包装在 REST 中。当您将它们公开为 REST API 时,它们将可用于任何客户端,而不仅仅是 java。此外,您不需要任何应用程序服务器,您只需要一个用于 REST 参考实现的 jar 文件。

从性能的角度来看,嗯,我知道理论上 JNDI 应该更快,但在现实世界中,性能差异仅在性能非常密集的应用程序中变得显着。

但是,如果性能是您的主要要求,那么将旧接口封装在 EJB 中。

手动 JNDI/RMI 查找将是最快的,但是这是一个相当大的问题,但是,除非您在网络编程和多线程方面经验丰富,否则我建议您避开这种情况,并使用容器。容器负责处理许多细节,您可以专注于实现业务逻辑。

于 2013-05-17T12:30:27.303 回答