我试图用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)
答案 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>