目前,我有很多Java的东西可以做各种漂亮的东西,我很高兴。代码是命令行驱动,到目前为止一直很好,但我最近决定我想通过Web服务提供功能。由于我很复杂,而且我对它的编写方式感到满意,所以我不想经历将其移植到其他语言的痛苦。所以我开始了一个谷歌之旅,找出存在哪些网络服务器(在Linux机器上,虽然听到答案没有这个限制很有趣)。
根据我的发现,似乎有两个可行的选项:Apache Tomcat和Sun Java Server。
选择一个在另一个之上的原因是什么?每个人的力量是什么,有哪些弱点?或者,也许还有第三个更容易,更灵活,更轻松。
任何?
答案 0 :(得分:5)
简单,灵活且不繁琐,Jetty,Simpleweb也可能有用。你不太谈论你的软件,所以我不太确定,但对于命令行程序,我认为你不需要所有JavaEE的东西。
主流服务器为these
我认为Apache Tomcat与Glassfish(Sun Java Server)的讨论与您的需求无关,任何人都可以这样做。
答案 1 :(得分:2)
有many containers for Java web applications,他们都有自己的优点和缺点。如果您正在寻找一个支持业务应用程序的容器,您应该看一下它们的不同之处,找出适合您的业务和IT驱动程序的容器。
关键是他们都支持servlet规范 - 你的webapps可以在任何一个中运行 - 这意味着你可以轻松改变主意。其中一些还将支持更多Java Enterprise Edition规范,因此可能对您的需求太重。
如果你刚开始,我会建议Tomcat。它是基本的,但它可靠,运行和启动快,而且它有一个非常简单的基于Web的webapp部署界面。
答案 2 :(得分:1)
你的问题实际上有点过于含糊和宽泛。实际上,您可以在任何计算机上运行Java代码,无论您使用基于Web的界面编程的语言如何。例如,您可以创建一个基于PHP的网站,该网站与“后端”Java应用程序交互(你称之为“命令行应用程序”)。唯一的要求是在服务器机器上安装JRE。然后基本上所有的网络界面都足够了:CGI,PHP,ASP,Python等等,你可以命名。只要它可以访问底层命令行运行时,这是在PHP示例中由exec()
完成的。
但Java,实际上是Java EE,还提供了一个Web应用程序编程接口:JSP / Servlet API,即大Java EE API的Web组件。这使得与“命令行Java应用程序”的集成更加无缝。您基本上只需将应用程序放在类路径中,然后在Servlet
类中导入/访问/使用真正的 Java方式:
YourApplication app = new YourApplication();
Result result = app.doStuff();
// ...
为了能够运行JSP / Servlet(JSP最终实际上也是一个Servlet),您需要一个Servlet API的具体实现(整个Java EE只是一个抽象规范)。 Apache Tomcat很开始,另一个受欢迎的选择是Eclipse Jetty。这些是实现Servlet API的“简单”servlet容器,Jetty是一种更嵌入式的方法(您可以将其配置并运行为“普通的Java应用程序”)。但是如果你需要支持/覆盖Java EE API的其他方面,那么你需要一个应用服务器,例如Sun Glassfish或JBoss AS(两者都使用Tomcat作为servletcontainer一部分)。
要了解有关JSP / Servlet的更多信息,我可以推荐Coreservlets.com tutorials。
答案 3 :(得分:0)
Apache Tomcat应该做得很好。
答案 4 :(得分:0)
在Web服务器中运行代码的标准概念是Sun的“Servlet API”。
本质上,它提供了一些Web服务器用来调用代码的接口,并定义了Web服务器的行为方式。这允许您编写非常通用的代码,这些代码可以在各种实现Servlet API的Web容器中运行。有关详细信息,请参阅维基百科文章 - http://en.wikipedia.org/wiki/Java_Servlet。
根据您的需要,它们也有各种尺寸。有些小到可以嵌入你自己的应用程序中,有些非常大。 servlet API允许你不关心。
对于初学者来说,最快的启动和运行方式是下载完整版的Netbeans,其中包括对完成此类工作的完全支持,并且具有内置的servlet容器。