2013-11-09 87 views
2

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

这种类型的应用程序可以移动到Java EE服务器,如WebSphere应用程序服务器吗?

什么是架构变化?

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

+0

应用程序正在监听某些端口吗? –

+0

是的,它使用jsmpp注册了一些监听器。 – Talal

回答

0

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

将应用程序放置在像Tomcat这样的Web容器或像WebSphere这样的应用程序服务器中可能会增强可管理性,但代价很大。

另一种方法是使用JavaService包装器,例如2000年3月迈克詹宁斯的DDJ文章所定义的。然后添加我需要的功能,零碎。这种方法的商业版本是可用的(如Tanuki软件)。只要您不需要Java EE类型的服务,这可以构建一个非常轻量级的方法。

+0

我们拥有的唯一动机是应用程序的托管关闭,避免任何来自外部世界的异常进程终止以及像应用程序服务器这样的容器将应用程序保留在其JVM中。 – Talal

0

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

0

让整个应用程序服务器只运行一个jar就好像为20世纪80年代的大众使用赛车维护团队。这只会过度。如果你的jar不需要应用服务器的任何特性,你为什么会考虑首先使用它?

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

1

这种类型的应用程序可以移动到Java EE服务器,如WebSphere应用程序服务器吗?

是的,任何应用程序逻辑都可以在应用程序服务器内部运行,这只是您如何打包应用程序以及应用哪些描述符而已。取决于您可能必须实现一些接口,这些接口用作服务器的回调方法或侦听器来启动和关闭应用程序。

让应用程序在应用程序服务器内运行的一个很好的理由可能是,在高度标准化和可管理的环境中,服务提供商只会为批次提供非标准化的服务或产品。

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

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

什么是架构变化?

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

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

如果需要,这将为您提供机会,使其仍能运行/测试您的应用程序,同时能够在运行时使用其资源。

0
  1. 摇摆屏幕将被转换成JSP的
  2. 逻辑将服务器从JSP页面获取数据运行。
  3. 你可以使用Spring MVC框架。
+0

当前应用程序是基于控制台的Java应用程序,当移动到应用程序服务器时,它必须自行启动,而不需要从UI端进行任何交互。可能它并不需要任何用户界面来完成它已经在做的任务。 – Talal

相关问题