使用JBoss或Tomcat的独立应用程序

时间:2010-03-26 16:00:59

标签: java tomcat jboss application-server

喂,

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

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

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

您是否有任何经验可以与我分享。

感谢。

5 个答案:

答案 0 :(得分:3)

我有两个建议

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

答案 1 :(得分:2)

这取决于您的申请。你有EJB吗?如果没有,让我们选择较轻的Tomcat并完成工作。如果是,则需要JBoss正确运行它们。

然后你可以用你的战争包装整个服务器,这应该有效。

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

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