2010-04-27 109 views
1

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

回答

2

某些客户端程序会向请求调用我写的工具的服务器提交请求。

最大的问题是,你可以在客户端和服务器之间使用什么服务器端技术什么通信协议。您基本上有两个主要选项:HTTP和Web服务(在这种情况下,请考虑使用JAX-WS或JAX-RS)或RMI-IIOP和EJB(在这种情况下,您必须使用符合Java EE的服务器GlassFish的)。

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

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

我应该使用哪一个软件包文件(JAR,WAR)

包装将取决于应用程序的类型,你会写,这并不是说你选择前期的东西,它只是一个结果。 EJB封装在EJB JAR中,通常部署在EAR中;基于Servlet的Web服务部署在WAR内部。

你真的需要考虑首先使用哪种技术(与目前的细节水平,我不能提供更多的指导)。

+0

嗨,谢谢你的回答。我们可能使用REST或Web服务。 – Dimitri 2010-04-27 12:25:16

+0

@Dimitri然后看看JAX-WS或JAX-RS标准。 GlassFish v3默认提供了这两种实现(您也可以在servlet容器上部署)。 – 2010-04-27 17:48:02

+0

感谢您的回答。我们可能会使用GlassFish。 Encore une fois merci !! – Dimitri 2010-05-04 14:05:20

0

我不明白你为什么要使用tomcat,glassfish或jetty作为命令行程序。

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

您可能还想看看Java Webstart,它可以轻松部署新版本。

2

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

你提到的服务器,你有2次不同的类别:servlet容器和全栈的Java EE服务器

的Tomcat和Jetty的servlet容器。这并不意味着您只能使用它们来完成网页内容,您可以手动添加所需的库来获取完整的Java EE服务器。

Glassfish是一个完整的Java EE服务器,可以与JBoss(都是开源)或商业竞争对手Weblogic和Websphere进行比较。

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

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

0

其实我们不能回答这么少的元素。 - 你打算做什么 - 使用什么技术 - 你打算主办你的应用程序在哪里(你有预算?) - 用哪种语言写客户端(甚至是未来的)? - 可能是客户在手机上(添加一些式技术的限制......) ....

这也将是巨大的,知道什么样的请求,客户端会做,并且服务器将有什么样的反应提供...

其实跟你告诉我们,所有的应用程序服务器可以做你想做的......

我特地为Tomcat,Jetty和Glassfish的 但似乎他们是 仅用于Web应用程序

你甚至可以让web应用(小服务程序),并在客户方使用的HttpClient来调用这个servlet ......有这么多的选择:)

巴黎万岁!

相关问题