代码之家  ›  专栏  ›  技术社区  ›  Dimitri

我应该为我的项目选择哪个应用服务器?

  •  1
  • Dimitri  · 技术社区  · 14 年前

    我目前正在为我的大学的一些研究人员开发一个应用程序,它是一个可以通过命令行使用的小Java程序。下一步是打包该程序并将其部署到应用服务器。一些客户机程序将向服务器提交请求,服务器将调用我编写的工具。最近,我们将向服务器添加更多的工具,他必须将请求分派到正确的工具。 哪个应用服务器适合我的需要?我找过Tomcat、Jetty和Glassfish,但它们似乎只用于Web应用程序。 是否可以在与Web上下文不同的某些上下文中使用这些服务器?我应该使用哪个包存档(jar,war)? 有什么建议吗?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Pascal Thivent    14 年前

    一些客户机程序将向服务器提交请求,服务器将调用我编写的工具。

    最大的问题是什么 服务器端技术 还有什么? 通信协议 你能在客户机和服务器之间使用吗?您基本上有两个主要选项:HTTP和Web服务(在这种情况下,考虑使用JAX-WS或JAX-RS)或RMIIIOP和EJB(在这种情况下,您必须使用符合JavaEE规范的服务器(如GLASISFISH))。

    我找过Tomcat、Jetty和Glassfish,但它们似乎只用于Web应用程序。

    不是真的。正如我所说,它们还可以用于面向Web服务的应用程序。Glassfish可以用于EJB应用程序。

    我应该使用哪个包存档(jar,war)

    包装将取决于您将要编写的应用程序的类型,它不是您预先选择的,它只是一个结果。EJB打包在EJB JAR中,通常部署在EAR中;基于servlet的Web服务部署在战争中。

    你真的需要考虑首先使用什么技术(根据目前的详细程度,我无法提供更多的指导)。

        2
  •  2
  •   SteveD    14 年前

    你甚至需要一个应用服务器吗?没有什么能阻止您添加必要的网络绑定并自行部署它。

    在您提到的服务器中,您有2个不同的类别:servlet容器和完全堆栈的JavaEE服务器。

    Tomcat和Jetty是servlet容器。这并不意味着你只能和他们一起做网页,你可以手动添加所需的库来获得一个完整的JavaEE服务器。

    GelasFISH是一个完整的堆栈JavaEE服务器,可以与JBASE(都是开源的)或商业竞争对手WebLogic和WebSphere进行比较。

    有时这个问题很简单,因为您工作的环境要求应用服务器具有特定的风格。你应该先检查一下这个。

    如果你不是被迫使用应用服务器,我会问你为什么认为你需要使用应用服务器?

        3
  •  0
  •   aioobe    14 年前

    我不明白您为什么要使用Tomcat、Glassfish或Jetty来执行命令行程序。

    如果它是基于命令行的,并且您希望它运行在服务器端,那么您可以编写一个小程序,允许用户,例如,telnet到您的服务器,服务器反过来启动有问题的cli应用程序,并将输入/输出中继到客户机。

    您可能还想研究Java WebStad,这使得新版本的部署变得轻而易举。

        4
  •  0
  •   Sebastien Lorber    14 年前

    事实上,我们不能用这么少的元素来回答。 -你打算怎么做 -用什么技术 -你打算在哪里托管你的申请(你有预算吗?) -用哪种语言写客户(甚至未来的客户)? -客户是否可以使用移动电话(添加一些技术限制…) …

    了解客户机将做什么样的请求,以及服务器将提供什么样的响应也是很好的…

    实际上,根据您所告诉我们的,所有这些应用程序服务器都可以做您想要做的事情…

    我找过Tomcat,Jetty和 玻璃鱼,但似乎是 仅用于Web应用程序

    甚至可以创建一个WebApplication(servlet),在客户端使用httpclient来调用该servlet…有很多选择:)

    巴黎万岁!