cve - apache tomcat
cgi y tomcat (5)
El error indica que el ejecutable llamado perl
no se puede encontrar. ¿Está Perl instalado en su sistema? ¿Está en el camino?
Estoy tratando de ejecutar un script cgi (.cgi) con Tomcat. Estoy obteniendo el siguiente error y no puedo encontrar cuál es incorrecto. Sé que realmente debería usar apache y mod proxy, pero esta no es mi área de especialización, así que estoy tomando el camino más fácil.
Gracias por cualquier ayuda.
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)
Esto es una especie de suposición, pero es posible que deba agregar lo siguiente a su archivo web.xml
para que Tomcat pueda encontrar el ejecutable de Perl. Tomcat no busca en su PATH
para encontrar ejecutables, aparentemente:
executable
C:/perl/bin/perl
Utilice la ruta real para perl en su sistema, por supuesto.
Debe especificar el parámetro "ejecutable" en el elemento servlet. De acuerdo con la documentación , el valor predeterminado es "perl", que es probablemente lo que está desencadenando su error. Quizás cambiarlo a algo como cmd.exe funcionará.
Gracias a todos, no descubrí cuál era la sintaxis correcta para ejecutar scripts de C ++ cgi, pero si dejas el parametro en blanco se ejecutará cualquier tipo de script.
<init-param>
<param-name>executable</param-name>
<param-value></param-value>
</init-param>
No perl no está instalado. La secuencia de comandos CGI es en realidad c ++. No instalé nada más que la instalación predeterminada de tomcat.