You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Richard Haber <ri...@verizon.net> on 2002/07/09 13:32:25 UTC

CGIServlet cannot find my perl script - second post

If there is anyone here who can help me with this problem, I would
really appreciate hearing from you.  Surely, someone out there must know
how to configure CGIServlet!  If there is something wrong with this
post, I would like to know that also so I can correct it.

I am running Apache 2.0.36 with Tomcat 4.0.3 and mod_jk on Windows XP.
The site was running without a VirtualHost and Apache was able to
execute the .pl scripts using the ScriptAlias element in httpd.conf.
When I moved the site to a virtual host, ScriptAlias stopped working.
After much fruitless hacking, I discovered CGIServlet and tried using
it.

I have the Tomcat CGIServlet configured as follows:
 <servlet>
  <servlet-name>cgi</servlet-name>
  <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
  ...
  <init-param>
   <param-name>cgiPathPrefix</param-name>
   <param-value>ks/cgi-bin/</param-value>  </init-param>
  <load-on-startup>5</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>cgi</servlet-name>
  <url-pattern>/cgi-bin/*</url-pattern>
 </servlet-mapping>

I am trying to invoke a perl script which is stored at
D:\tomcat403\webapps\ks\cgi-bin with the HTML: <form
action='/cgi-bin/enhancements.pl' method='post'
enctype='multipart/form-data'>

I am getting the following error page from the servlet (extraneous
portions left out):

$Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/serv
lets/CGIServlet.java,v 1.6 2001/08/20 02:42:11 amyroh Exp $
CGI script not found or not specified. 
Check the HttpServletRequest pathInfo property to see if it is what you
meant it to be. You must specify an existant and executable file as part
of the path-info. 

HttpServletRequest Properties
  method = POST 
  pathInfo = /enhancements.pl 
  pathTranslated = D:\TOMCAT403\webapps\ks\enhancements.pl 
  ...
  requestURI = /cgi-bin/enhancements.pl
  servletPath = /cgi-bin 

ServletConfig Initialization Parameters
  cgiPathPrefix = ks/cgi-bin/ 

ServletContext Properties
  realPath('/') = D:\TOMCAT403\webapps\ks\ 

If I change to <form action='/cgi-bin/cgi-bin/enhancements.pl' ...

I get these lines in the error page:
pathInfo = /cgi-bin/enhancements.pl 
pathTranslated = D:\TOMCAT403\webapps\ks\cgi-bin\enhancements.pl

I have tried various combinations of the servlet cgiPathPrefix parameter
and url in the POST, but the error page is the best that I can get.  I
can double-click the perl scripts and Perl opens and tries (but will
fail!) to run them, so they must be existant and executable

I know that I am doing something wrong, but after searching Google and
the mailing lists all day, I cannot figure out what to do to make this
work.

Any help that you can offer will be greatly appreciated, since I have to
get this into production and do not want to re-write my perfectly good
perl scripts in Java just to get them to work.

Thanx in advance...
Richard Haber



--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>