web页面无法任何执行cgi脚本? 提示如下错误:
type Exception report
message Broken pipe
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.io.IOException: Broken pipe
java.io.FileOutputStream.writeBytes(Native Method)
java.io.FileOutputStream.write(FileOutputStream.java:345)
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:141)
org.apache.catalina.servlets.CGIServlet$CGIRunner.run(CGIServlet.java:1542)
org.apache.catalina.servlets.CGIServlet.doGet(CGIServlet.java:544)
org.apache.catalina.servlets.CGIServlet.doPost(CGIServlet.java:515)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
原因有可能如下:
1.可能是java版本不匹配导致。这个原因导致还有一个明显的特征就是,cgi为其他可执行程序也无法执行,如脚本。
2.可能是tomcat关于CGI的配置conf/web.xml文件的默认配置不支持exe程序。
如下是tomcat的conf/web.xml关于CGI的配置:
<init-param>
<param-name>executable</param-name> <!-- 默认均认为是perl 脚本 -->
<param-value></param-value> <!-- 当设置为空时,有x权限的cgi均可执行 -->
</init-param>
如果没有如上配置,则默认执行perl脚本,需要新增如上配置并把<param-value>设置为空。