My Grails应用程序声明它正在使用名为“Jetty Grails”的服务器。我一直认为Grails在GlassFish上运行;我从来没有听说过Jetty Grails。关于此事请赐教。
答案 0 :(得分:4)
Jetty是轻量级servlet容器,通常用于在较大的应用程序中嵌入servlet容器。
当Grails应用程序在开发模式下运行时,它默认在Tomcat上运行。这个默认值在版本1.1和1.2之间的某个时间从Jetty更改为Tomcat。您可以通过安装Jetty Grails plugin将默认值更改回Jetty。因此,如果您已安装此插件(请检查application.properties
和BuildConfig.groovy
)或运行旧版Grails(请检查application.properties
),这将解释您的应用程序默认为Jetty的原因。< / p>
如果您运行grails war
,它会为您的Grails应用构建一个.war文件,该文件可以部署到任何servlet容器,例如Tomcat,Jetty,Glassfish,JBoss,WebLogic等。
答案 1 :(得分:2)
Jetty是一个与Grails打包在一起的轻量级servlet / JSP引擎。你当然可以运行它,因为Grails是基于Groovy,Spring和Hiberate构建的,并且不需要完整的Java EE堆栈(没有EJB,没有JMS)。
Grails应用程序肯定会在Glassfish上运行,但不需要整个Java EE堆栈。它的工作原理是因为Glassfish也有一个servlet / JSP引擎。 Tomcat是另一种可能性;树脂也是如此。任何兼容的servlet / JSP引擎都可以。
答案 2 :(得分:1)
Jetty是一个轻量级的servlet容器,似乎是需要嵌入式servlet容器的Java项目最受欢迎的选择 - 比如Grails。
虽然Grails应用程序当然可以在Glassfish上运行,但在分发中包含它会毫无意义,因为Grails只需要一个Servlet容器并且不使用大多数Java EE功能(例如Glassfish实现的EJB。