我有一个Spring + Hibernate应用程序,我将其编译为*.war
文件并将其部署到Tomcat。这对我来说是开发人员,但是:
有没有办法在某个用户的计算机上运行该应用程序,该计算机已安装Java但未安装tomcat?
我甚至接受这个解决方案,它使用somekinda包实际运行servlet容器并将应用程序部署到用户的计算机,但我不希望该用户必须安装容器并配置它等等。
有什么建议吗?
编辑:
基本上我希望用户从可执行文件运行我的Web应用程序,而无需安装tomcat或其他工具。
答案 0 :(得分:4)
您有几个选择:
如果要将源代码分发给用户,并且已安装maven,则只需运行mvn jetty:run
或mvn tomcat:run
即可在本地构建应用程序并在servlet容器中运行它由Maven插件启动。
您可以在应用程序中embed Tomcat或embed Jetty,以便在应用程序中运行main()
方法启动监听某个端口的servlet容器并运行您的应用程序。这样就可以将整个应用程序打包为一个.jar
文件,并使用java -jar your.jar
运行。
答案 1 :(得分:3)
Winstone servlet容器允许将war文件嵌入到winstone jar中,从而导致单个jar部署,可以使用“java -jar foo.jar”或可点击运行罐。
詹金斯/哈德森使用这个。我们使用它与一些类路径技巧来使用爆炸战。有关详细信息,请参阅http://winstone.sourceforge.net/#embedding。
这很可能是目前最优雅的方式。
答案 2 :(得分:2)
您当然可以从命令行运行spring + hibernate应用程序,使用ClassPathXmlApplicationContext
在main
方法中加载弹簧配置文件,以初始化弹簧容器和其余布线。
但是,要运行使用servlet或使用Java Servlet规范的类似范例编写的Web应用程序,那么您需要一个像Tomcat,AFAIK这样的servlet容器。
答案 3 :(得分:0)