`
fengzhizi715
  • 浏览: 159756 次
  • 性别: Icon_minigender_1
  • 来自: 上海 苏州
社区版块
存档分类
最新评论

Grails部署到Tomcat遇到的几个小问题

阅读更多
1) 输入命令:grails prod war ROOT.war 然后发布到Tomcat的webapps下。
然后输入http://localhost:8080即可显示。如果打包成其他的名字,就在放置到webapps\ROOT目录下 然后输入http://localhost:8080 就会导致溢出,因为grails包含spring、hibernate启动时需占大量内存。

2) 如果传入params有中文,需要将编码设置为utf8,在%TOMCAT_HOME% \conf文件夹下的server.xml,找到
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector
port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" />
将其改为
    <Connector
port="80"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               c disableUploadTimeout="true" URIEncoding="utf-8"/>
重起Tomcat即可

3) 关于servletContext的问题
在jetty下,gsp页面中可以使用${request.getServletContext()}来获取servletContext的信息,比如Servlet Context Name
     而在tomcat5.5下不行。但是直接使用servletContext对象也不行,无论在tomcat还是jetty下,在gsp页面直接使用都会报错。
     我的做法是:
        def rootRealPath = servletContext.getRealPath("/")
        def classesRealPath = servletContext.getRealPath("/WEB-INF/classes")
        def servletContextName = servletContext.getServletContextName()
        [rootRealPath:rootRealPath , classesRealPath:classesRealPath , servletContextName:servletContextName]
        然后在gsp页面调用${ rootRealPath}、${ classesRealPath }、${ servletContextName }
即可。


目前只遇到这些问题,以后遇到会慢慢总结
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics