【发布时间】:2013-10-14 16:16:17
【问题描述】:
我想在 grails 2.3 中使用 cgi,我的开发工具是 Intellij Idea 13。 所以我必须在 context.xml 中设置 privileged="true"。 但是我不知道如何在TomcatPlugin中设置它,我可以得到你的帮助吗? 非常感谢!!!
【问题讨论】:
我想在 grails 2.3 中使用 cgi,我的开发工具是 Intellij Idea 13。 所以我必须在 context.xml 中设置 privileged="true"。 但是我不知道如何在TomcatPlugin中设置它,我可以得到你的帮助吗? 非常感谢!!!
【问题讨论】:
为了让这项工作正常运行,我运行了 grails install-templates 并编辑了 src/templates/war/web.xml 以添加 CGI servlet 和映射:
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value>/usr/local/groovy/bin/groovy</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
然后设置我创建 scripts/_Events.groovy 并添加的 privileged 标志
eventConfigureTomcat = {tomcat ->
def context = tomcat.host.findChild(serverContextPath)
context.privileged = true
}
我使用web-app/WEB-INF/cgi/test1.cgi 进行了测试,这是一个 Groovy 脚本(我必须设置上面的“可执行”init-param 以使用 Groovy 而不是 Perl):
#!/usr/local/groovy/bin/groovy
println "Content-type: text/html\n\n"
println """
<html>
<head>
<title>CGI Test</title>
</head>
<body>
<strong>Testing CGI at ${new Date()}</strong>
</body>
</html>
"""
【讨论】: