2

我有一个 Spring+Hibernate 应用程序,我将其编译为*.war文件并将其部署到 Tomcat。这对我作为开发人员有用,但是:

有没有办法在安装了 Java 但未安装 tomcat 的某些用户计算机上运行该应用程序?

我什至会接受该解决方案,该解决方案使用实际运行 servlet 容器并将应用程序部署到用户计算机的某种包,但我不希望用户必须安装容器并对其进行配置等。

有什么建议么?

编辑:

基本上我希望用户从可执行文件运行我的 Web 应用程序,而无需安装 tomcat 或其他工具。

4

4 回答 4

4

你有几个选择:

  1. 如果您将源代码分发给用户,并且他们已经安装了 maven,您可以在本地运行mvn jetty:runmvn tomcat:run构建应用程序并在 Maven 插件启动的 servlet 容器中运行它。

  2. 您可以在应用程序中嵌入 Tomcat嵌入 Jetty,以便在应用程序中运行main()方法会启动侦听某个端口的 servlet 容器并运行您的应用程序。这使得可以将整个应用程序打包为单个.jar文件并使用java -jar your.jar.

于 2012-09-13T16:00:47.153 回答
3

Winstone servlet 容器允许在 winstone jar 中嵌入 war 文件从而形成一个可以使用“java -jar foo.jar”或作为可点击 jar 运行的单个 jar 部署。

詹金斯/哈德森使用这个。我们已经使用它和一些类路径技巧来使用爆炸战争。

有关详细信息,请参阅http://winstone.sourceforge.net/#embedding

这很可能是目前最优雅的方法。

于 2012-09-13T17:38:51.223 回答
2

您当然可以从命令行运行 spring +hibernate 应用程序,使用ClassPathXmlApplicationContext在您的方法中加载 spring 配置文件main来初始化 spring 容器和其余的接线。

但是,要运行使用 servlet 或使用 Java Servlet 规范的类似范例编写的 Web 应用程序,您需要一个像 Tomcat、AFAIK 这样的 servlet 容器。

于 2012-09-13T15:55:58.500 回答
0

不是直接的例子,但可能有用的类似例子:http ://www.zimbra.com/products/desktop.html和http://www.zimbra.com/products/zimbra-open-source.html

于 2012-09-13T18:32:52.857 回答