Grails应用程序Tomcat或VMware vFabric

时间:2014-10-08 17:08:58

标签: tomcat grails ggts

我对grails很新。我有一个我想要运行的预先存在的应用程序。应用程序构建并正确运行但我无法弄清楚它正在使用的服务器 - 无论是默认的VMware还是Tomcat实例

我在我的BuildConfig.groovy中包含了tomcat插件,如下所示

build ':tomcat:7.0.52.1'

我假设应用程序实际上是在tomcat服务器上运行,但我知道无法确认它。在我的GGTS的服务器选项卡上,我只看到一个VMware实例,但没有看到Tomcat实例。这是正常的吗?

我还尝试在部署应用程序时检查日志,方法是将日志级别更改为verbose中的BuildConfig.groovy,但这也没有给我足够的信息来获取答案,这是我的搜索结束。

对于那些感兴趣的人,我的主要目的是在tomcat上配置SSL证书(如果它还没有完成)。对此有任何帮助非常感谢。

2 个答案:

答案 0 :(得分:2)

可以将Grails WAR文件部署到GGTS管理的服务器,但我从未这样做过。我确信它很容易做到,但我从来没有这么做过。这在一个没有嵌入式(但是完整的)Tomcat实例的框架中更有意义,另外还有一个选项可以将一个完整的嵌入式Jetty实例换成1行配置更改:http://grails.org/plugin/jetty

使用" Run As |在GGTS中运行应用程序时Grails Command(run-app)"你从命令行运行grails run-app就像做同样的事情。所有GGTS都可以运行应用程序或测试,甚至generate-create-脚本都会调用相同的脚本,但是在一个单独的VM中,它会被隔离,并且它会被捕获并在IDE中显示stdout和stderr。所以你不太可能使用tc服务器(VMware是公司(或者现在是它的Pivotal),vFabric是平台,而tc Server是Tomcat的增强版本他们出售许可证和支持)。如果您想完全确定,请转到Spring仪表板并卸载tc Server,除非您计划将来部署到它并希望在本地进行测试。

另一个快速测试(假设您没有自定义404页面)是请求正确的主机,端口和上下文的URL,但是对于应用中不存在的页面或控制器。 404页面应该说Tomcat,但是tc Server页面应该说" tc Server",类似于:enter image description here

因此,如果您的应用名称为" foo",请

http://localhost:8080/foo/whereAreWeRunningFrom?

或类似的东西。

此外,如果GGTS部署到tc Server(甚至Tomcat,但它自己管理的Tomcat,而不是Grails内部无法配置或访问的嵌入式Tomcat),它会通过创建一个WAR文件并部署它,它将使用生产环境。因此重新加载将被禁用。如果您可以更改控制器,服务,taglib,i18n文件,GSP等,并且更改生效,您将使用Grails配置的Tomcat。这使用了一个"爆炸的WAR"部署风格,它告诉Tomcat你的项目目录是一个解压缩的WAR文件,它配置css和js dirs,图像目录,WEB-INF等指向你的项目文件夹而不是真正的解压缩的WAR文件

您可以使用-https标记在本地运行SSL,请参阅http://grails.org/doc/latest/ref/Command%20Line/run-app.html - Grails将首次为您创建自签名证书,您可以继续使用该证书,或者使用像这里描述的替换它的方法:http://grails.1312388.n4.nabble.com/Specifying-the-SSL-certificate-in-Grails-2-x-td4629128.html

答案 1 :(得分:0)

grails run-app命令创建一个嵌入式servlet容器,默认情况下使用Tomcat。所以你使用grails插件中的Tomcat,而不是GGTS附带的vFabric服务器。

如果您使用grails run-app -https,则会为您生成自签名证书。

当然,当您将WAR文件部署到生产服务器时,您必须在那里添加SSL证书。