cgi和tomcat

时间:2009-01-31 20:08:44

标签: tomcat cgi

我试图用tomcat运行cgi脚本(.cgi)。我收到以下错误,无法找出错误。我知道我应该真的使用apache和mod代理,但这真的不是我的专业领域所以我采取了简单的方法!

感谢您的帮助。

java.io.IOException: Cannot run program "perl" (in directory "C:\Java\tomcat\webapps\my_app_name\WEB-INF\cgi"): CreateProcess error=2, The system cannot find the file specified
    java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
    java.lang.Runtime.exec(Runtime.java:593)
    java.lang.Runtime.exec(Runtime.java:431)
    org.apache.catalina.servlets.CGIServlet$CGIRunner.run(CGIServlet.java:1705)
    org.apache.catalina.servlets.CGIServlet.doGet(CGIServlet.java:597)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:416)

5 个答案:

答案 0 :(得分:2)

这是一种猜测,但您可能需要将以下内容添加到web.xml文件中,以便Tomcat可以找到perl可执行文件。 Tomcat没有在PATH中查找可执行文件,显然是:

executable
C:\perl\bin\perl

当然,请在系统上使用perl的实际路径。

答案 1 :(得分:1)

您需要在servlet元素中指定“executable”参数。根据{{​​3}},默认值为“perl”,这可能是触发错误的原因。也许将其更改为像cmd.exe这样的东西。

答案 2 :(得分:0)

该错误表示找不到名为perl的可执行文件。是否在您的系统上安装了perl?它在路上吗?

答案 3 :(得分:0)

没有安装perl。 CGI脚本实际上是c ++。我没有安装除默认tomcat安装之外的任何东西。

答案 4 :(得分:0)

谢谢大家,我没有找到运行C ++ cgi脚本的正确语法,但是如果你将参数留空,它将运行任何脚本类型。

<init-param>
  <param-name>executable</param-name>
  <param-value></param-value>
</init-param>