1

你好,

我有一个关于部署 Java 应用程序的更具体的问题。

我创建了一个 Java 应用程序,它是一个 WAR 文件,可以安装在任何 Java 应用程序服务器上。这很完美。现在,对于没有 Java 经验的用户,我想以某种方式将我的应用程序与应用程序服务器打包在一起,并将其作为独立版本分发。

问题1:这可能吗?问题 2:哪个应用程序服务器最适合这个?问题 3:我应该从哪里开始学习如何做到这一点?

你有什么经验可以和我分享。

谢谢。

4

5 回答 5

3

我有两个建议给你

  1. 你可以带tomcat。将您的战争放在 webapps 文件夹中并将其重命名为 ROOT.war。压缩 tomcat 文件夹。并分发有关如何启动它的说明。这真的很简单。
  2. 第二种选择是使用码头。基本上编写一小段代码来启动指向您创建的战争的码头服务器(可能存储在同一个文件夹甚至jar中),然后编写一个小启动脚本或将其制成exe。

我更喜欢第一个选项,因为它使用 tomcat。

于 2010-03-27T07:00:26.907 回答
2

这取决于您的应用程序。你有 EJB 吗?如果没有,让我们选择更轻且能胜任的Tomcat。如果是,您需要 JBoss 才能正确运行它们。

然后你可以用你的 War 压缩整个服务器,这应该可以工作。

于 2010-03-26T16:06:28.547 回答
2

查看 Winstone servlet 容器,它具有您想要的支持用例。

这就是 Hudson 持续集成服务器独立运行的方式。

请参阅https://stackoverflow.com/questions/1515654/what-is-a-lightweight-fast-java-servlet-container/1515804#1515804

于 2010-03-26T16:07:17.860 回答
1

至少使用 JBoss,部署应用程序后压缩整个服务器的简单方法应该可以正常工作。由于 JBoss 包含 Tomcat,我想它也应该与 Tomcat 一起使用。

为了使用户更容易启动服务器,您可以提供自定义runMyServer.bat(或.sh)来执行run.bat -c MyServer -b 127.0.0.1(当然替换所需的 IP 地址 :-)。

于 2010-03-26T16:04:42.637 回答
1

Maven 有一个简洁的插件 (the jetty-console-maven-plugin),它允许创建一个“可执行的”战争(它创建一个嵌入 Jetty servlet 容器的单个工件)。它非常易于使用,请查看。

于 2010-03-27T07:53:21.267 回答