通过c++启动Tomcat 8.5 localhost ?什么是最佳实践?



我试图创建一个小的c++ Visual Studio Forms(通过CPPCLR_WinformsProjekt)应用程序,本质上是一个浏览器,但它也启动了一个本地Tomcat 8.5服务器,在其web应用程序文件夹中有一个WAR文件,并将您重定向到本地主机页面。我在Windows上工作。

我的问题是-通过c++库启动Tomcat服务器的最佳方式是什么?

编辑:我开始解决这个问题的方法是简单地将tomcat文件夹与WAR文件压缩到Visual Studio项目中。在执行时,文件被解压缩,我正在考虑有一个system(*start tomcat command*).

注意:我知道我可以通过cmd启动Tomcat,但我需要通过c++让它工作。

[我假设你是在Windows系统下,但在unix系统上也有类似的方法。]

在c++程序中,您可以执行shell所能执行的所有命令,因此启动Tomcat的最简单方法是使用CreateProcess来执行catalina.bat(或startup.bat)。这也是最容易配置的方式:用户可以根据需要调整setenv.bat

当然,如果您想省略*.bat文件,您可以:

  • 使用java.exe和适当的参数实例化JVM:在系统类路径中至少需要bin/bootstrap.jar(通常是bin/tomcat-juli.jar),并使用start参数调用org.apache.catalina.startup.Bootstrap的主方法。
  • 或通过调用API使用jvm.dll实例化JVM,方法与procrun类似。

我不认为这些方法比*.bat脚本有任何优势。要停止一个现代的Tomcat,只需发送kill信号。

编辑:如果您计划只启动一个特定的web应用程序,那么一个功能完备的Tomcat可能有些多余。你可以:

  • 要么使用Tomcat Embedded,这意味着编写一个类并调用它的main方法而不是Boostrap#start。优点是,你只需要分发一堆jar文件和WAR不需要传统的Tomcat安装目录结构
  • 或者用户使用Spring Boot

相关内容

  • 没有找到相关文章

最新更新