2

我有一个使用 java -jar 在自己的 JVM 中运行的 Java SE 应用程序。它有一个主函数,为某些 SMPP 服务器注册一些回调,注册这些回调后的主线程继续检查这些服务器的连接性。

这种应用程序可以移动到像 WebSphere 应用程序服务器这样的 Java EE 服务器吗?

架构会发生什么变化?

上面是一个单线程控制台应用程序,它一直运行到它的进程被杀死。它继续检查连接性。

4

5 回答 5

1

这种应用程序可以移动到像 WebSphere 应用程序服务器这样的 Java EE 服务器吗?

是的,从技术上讲,任何应用程序逻辑都可以在应用程序服务器中运行,这只是您如何打包应用程序以及应用哪些描述符的问题。根据这一点,您可能必须实现一些接口,这些接口用作服务器的回调方法或侦听器,以启动和关闭您的应用程序。

让应用程序在应用程序服务器中运行的一个很好的理由可能是,在高度标准化和受管理的环境中,服务提供商只会提供非标准化的服务或产品以获取大量额外费用。

另一个很好的理由是您想使用来自应用程序服务器的托管资源。例如,这可以是消息传递或持久性。

在任何情况下,您都需要了解使用应用服务器的成本和收益。

架构会发生什么变化?

您必须让容器(应用程序服务器)通过接口或侦听器来管理应用程序的生命周期。例如,如果您决定将应用程序打包为 WebApp(不知道这对您来说是否是一件好事,还有其他选择),那么您可能必须实现 Filter 或 ContextListener 并在xml 描述符 (web.xml)。

您还可以做的是更改您的应用程序以使用 Spring 容器,然后让应用程序服务器启动 Spring,然后运行您的应用程序。

如果需要,这将使您有机会在没有应用程序服务器的情况下仍然运行/测试您的应用程序,同时能够在运行时使用其资源。

于 2013-11-10T14:44:16.030 回答
0

除了愚蠢的管理法令之外,没有理由这样做。抵制这样的法令。

于 2013-11-10T13:09:19.617 回答
0

如果您不需要 Web 容器的 HTTP 服务(例如 Servlet、JSP、JSF),也不需要 Application Server 的许多服务(例如 EJB 或 JMS 等),那么可能没有理由更新此应用程序到 Java EE 服务器。你没有具体说明这样做的动机。

将应用程序放置在 Tomcat 之类的 Web 容器或 WebSphere 之类的应用程序服务器中可能会增强您的可管理性,但成本很高。

另一种方法是使用一个 JavaService 包装器,例如 Mike Jennings 在 2000 年 3 月的 DDJ 文章中定义的。我已经使用了这种方法。然后零碎地添加了我需要的功能。这种方法的商业版本是可用的(例如 Tanuki Software)。只要您最终不需要 Java EE 类型的服务,这可以成为一种非常轻量级的方法。

于 2013-11-09T23:25:08.487 回答
0
  1. 摆动屏幕将转换为 JSP 的
  2. 逻辑将在服务器中运行,从 JSP 页面获取数据。
  3. 您可以使用 Spring MVC 框架。
于 2013-11-11T09:53:28.037 回答
0

拥有一个仅运行一个 jar 的整个应用程序服务器就像为您的 1980 年代大众汽车雇用一个赛车维护团队。这只是矫枉过正。如果您的 jar 不需要应用程序服务器的任何功能,那么您为什么会首先考虑使用它?

Applicationserver 具有一定的特性,但也需要更多的知识和资源来设置和维护。为了使用应用程序服务器而使用一个并不总是答案。

于 2013-11-10T13:27:32.350 回答