Página 1 de 1

Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-22 15:04 @669
por HIRONAKAMURA
He seguido estos pasos:

1. Modificar el archivo context.xml
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. <Context privileged="true"> ...
  2.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


2. Modificar el archivo web.xml, descomentando lo referente a cgi

3. Crear el archivo "ejecutable.cgi", lo coloco en webapps/ROOT/miCarpeta/WEB-INF/cgi/ejecutable.cgi

El archivo "ejecutable,cgi" es el siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!c:/perl/bin/perl.exe
  2. print "Content-type:text/html\r\n\r\n";
  3. print '<html>';
  4. print '<head>';
  5. print '<title>Hola desde un script Perl</title>';
  6. print '</head>';
  7. print '<body>';
  8. print '<h2>Primer programa CGI</h2>';
  9. print '</body>';
  10. print '</html>';
  11.  
  12. 1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



El servidor es Apache Tomcat, funciona correctamente, el problema es que este archivo se muestra como archivo plano y no como página HTML.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-22 18:02 @793
por explorer
Yo no usaría Tomcat para servir CGI ni aún que me pagaran, pero bueno, soporte tiene. Antes, lo haría con un simple Apache httpd. Es más fácil de configurar, y permite colocar los cgi en más de un sitio.

De todo lo que has hecho, si el cgi se muestra en texto plano, es que, quizás, no has colocado el cgi en el directorio correcto. O que no se ha activado el servlet org.apache.catalina.servlets.CGIServlet. O que el Context no está marcado como privilegiado...

En fin, un rollo.

Repasa la configuración.

En mi máquina, la configuración es esta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1.     <servlet>
  2.         <servlet-name>cgi</servlet-name>
  3.         <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
  4.         <init-param>
  5.           <param-name>debug</param-name>
  6.           <param-value>0</param-value>  
  7.         </init-param>
  8.         <init-param>
  9.           <param-name>cgiPathPrefix</param-name>
  10.           <param-value>WEB-INF/cgi</param-value>
  11.         </init-param>
  12.          <load-on-startup>5</load-on-startup>
  13.     </servlet>
  14.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
(que está comentada, porque de los cgi ya se encarga el propio Apache).

Lo que no tengo idea es cómo relacionar los URL a este servlet... En algunos sitios dice que /cgi y en otros, que es /cgi-bin

Prueba a activar el debug, rearrancar el Tomcat, y ver la salida del catalina.log, a ver qué dice.

El programa Perl lo veo bien. Lo único, que con el uso del modulo CGI, se puede reducir bastante.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!c:/perl/bin/perl.exe
  2. use CGI ':standard';
  3. print
  4.     header,
  5.     start_html('Hola desde un script Perl'),
  6.     h2('Primer programa CGI'),
  7.     end_html,
  8.     ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-22 18:03 @794
por danimera
Pues, lastimosamente, no está funcionando correctamente.

No sé mucho de Tomcat, pero vi este enlace:
http://codigoaldescubierto.wordpress.com/2008/02/24/cgis-en-tomcat-bajo-windows/

Ahora, de alguna forma tienes que decirle al Tomcat que los ficheros .cgi o .pl los ejecute con Perl...

Bueno, es todo lo que puedo aportar.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-22 18:12 @800
por explorer
Gracias al aporte de danimera, sabemos que hay una segunda parte en el web.xml que hay que descomentar:
Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1.     <servlet-mapping>
  2.         <servlet-name>cgi</servlet-name>
  3.         <url-pattern>/cgi-bin/*</url-pattern>
  4.     </servlet-mapping>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Y esa es la parte que justamente dice la URL que hay que usar para que funcionen los cgi...

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-23 10:56 @497
por HIRONAKAMURA
Gracias por responder, voy a seguir intentando.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-23 11:17 @512
por HIRONAKAMURA
¿Existe otra forma de hacer esto?

Ya seguí los pasos de estas páginas:

http://mischorradas.nishilua.com/2007/1 ... -en-linux/

http://codigoaldescubierto.wordpress.co ... o-windows/

Y nada, todo sigue igual: el archivo se muestra como texto plano.

Gracias.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-23 11:44 @531
por explorer
Resumen (que depende además, de la instalación Tomcat en particular)
  • editar web.xml y descomentar las dos partes relativas a CGI
  • ir al directorio indicado por la primera parte, y colocar allí nuestro cgi
  • reiniciar el Tomcat (o quizás, darle la orden de que recargue los servlet)
  • ir al navegador web, y apuntar a la URL indicada por la segunda parte descomentada
Si le has puesto un '1' al parámetro 'debug' (en la primera parte descomentada) deberías ver algún mensaje de depuración, en el catalina.log.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-26 11:40 @528
por HIRONAKAMURA
Ya he seguido pasos a paso y sigue el mismo problema.

¿Existe otra alternativa sin usar Tomcat?

Gracias por responder.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-26 12:22 @557
por explorer
¿No sale nada en catalina.out? Increíble...

La comentada antes: Apache (hilo). Más hilos.

Re: Pasos para crear una aplicación CGI en Tomcat

NotaPublicado: 2013-07-29 21:40 @944
por HIRONAKAMURA
Gracias por los enlaces.