【发布时间】:2011-04-21 20:26:51
【问题描述】:
我知道“普通”Java,但对 servlet、容器等领域很陌生。因此,我不确定哪种方法最明智。
情况:我创建了一个 Servlet,它接收信息并将其存储在数据库中。该数据库被其他应用程序读取。
现在我需要一个应用程序,它接收完全相同的信息并将其存储在同一个数据库中。然而,这个新应用程序需要从另一台服务器(我将为此使用 httpClient)提取此信息,而不是将其推送到它。两个应用程序将共存。
对于这个新应用程序,我看到以下两个选项:
制作一个独立的应用程序。为此,我可以复制粘贴大量现有的后端代码,但我需要进行一些修改(servlet 容器提供上下文、简单的数据库连接池等)。此外,我可能需要使用一些包装器,这样可以像一个适当的守护进程一样工作,我可以启动它,但也可以优雅地停止/重启等。
使新应用程序成为 Servlet 的一部分。也就是说:只需在将运行新应用程序的 servlet 的 init() 中启动一个新线程。这将允许我重用我已经拥有的所有后端代码,而无需重写任何代码。我只需要编写向另一台服务器发出 HTTP-GET 请求的代码。使用这种方法,启动和停止服务也会更容易,因为我可以使用 Servlet 容器。
关于项目的一些信息:解析数据并将数据写入数据库的后端代码有几个线程,但不是很复杂。为原始 servlet 编写代码大约需要一周的时间。使用现有的代码库,我觉得这个新应用程序最多可能需要 1、2 天的工作时间。
我认为选项 2 更容易。但感觉有点像我会“滥用”servlet。 所以我的问题是:不是应该处理请求的应用程序的servlet,而不是发出请求的应用程序吗?有一些我在这里看不到的巨大缺点吗?哪个选项最有意义?
tl;dr:我可以编写一个不将请求作为 Servlet 提供服务的应用程序吗?
【问题讨论】: