2009-01-31 6 views
1

tomcat으로 cgi 스크립트 (.cgi)를 실행하려고합니다. 나는 아래의 오류를 얻고있어 무엇이 잘못되었는지 찾아 낼 수 없다. 나는 아파치와 mod 프록시를 정말로 사용해야한다는 것을 알고 있지만 이것은 나의 전문 분야가 아니므로 쉬운 방법을 택하고있다!cgi and tomcat

도움 주셔서 감사합니다.

 
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) 

답변

2

이 추측의 무언가이다, 그러나 당신은 Tomcat이 펄 실행 파일을 찾을 수 있도록 web.xml 파일에 다음을 추가해야 할 수도 있습니다. Tomcat은 분명히 실행 파일을 찾기 위해 PATH에 보이지 않는 :

executable 
C:\perl\bin\perl 

는 물론, 시스템에 펄 실제 경로를 사용합니다.

0

오류는 perl이라는 실행 파일을 찾을 수 없음을 나타냅니다. perl이 시스템에 설치되어 있습니까? 그 길에 있습니까?

0

perl이 설치되어 있지 않습니다. CGI 스크립트는 실제로 C++입니다. 기본 Tomcat 설치 이외의 다른 것을 설치하지 않았습니다.

1

서블릿 요소에서 "실행 가능"매개 변수를 지정해야합니다. documentation에 따르면 기본값은 "perl"이며 이는 아마도 오류를 유발하는 원인 일 것입니다. 아마도 cmd.exe와 같은 것으로 변경하면됩니다.

0

감사합니다 모두들, 나는 C++ CGI 스크립트를 실행하는 올바른 구문을 찾지 못했지만, param을 비워두면 모든 스크립트 유형이 실행됩니다.

<init-param> 
    <param-name>executable</param-name> 
    <param-value></param-value> 
</init-param>