【问题标题】:cgi and tomcatcgi和tomcat
【发布时间】:2009-01-31 20:08:44
【问题描述】:

我正在尝试使用 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, 系统找不到指定的文件 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.tukey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:416)

【问题讨论】:

    标签: tomcat cgi


    【解决方案1】:

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

    executable
    C:\perl\bin\perl
    

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

    【讨论】:

      【解决方案2】:

      您需要在 servlet 元素中指定“可执行”参数。根据documentation,默认值为“perl”,这可能是触发您的错误的原因。也许将其更改为 cmd.exe 之类的东西会起作用。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          谢谢大家,我不知道运行 C++ cgi 脚本的正确语法是什么,但是如果您将参数留空,它将运行任何脚本类型。

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

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-09-06
              • 2012-08-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多