尝试在Jetty 9.1.5.v20140505,Windows 7上配置CGI(用于perl脚本)。当从inet尝试解决方案总是得到错误时,那些函数/方法将不存在。
示例:http://67-23-9-112.static.slicehost.net/faq?s=900-Content&t=CGI 得到他们告诉我的内容,获得:
2014-05-22 13:08:09.137:WARN:oejx.XmlConfiguration:main: Config error at <Call name="addContext"><Ar
g>C:\jetty\webapps\app1\cgi-bin\*</Arg><Set name="ResourceBase">C:\jetty\webapps\app1</Set><Set name
="ServingDynamicServlets">TRUE</Set><Call name="addServlet"><Arg>Common Gateway Interface</Arg><Arg>
/</Arg><Arg>com.mortbay.Servlet.CGI</Arg><Put name="Path">/usr/local/bin:/usr/ucb:/bin:/usr/bin</Put
></Call></Call> java.lang.IllegalStateException: No Method: <Call name="addContext"><Arg>C:\jetty\we
bapps\app1\cgi-bin\*</Arg><Set name="ResourceBase">C:\jetty\webapps\app1</Set><Set name="ServingDyna
micServlets">TRUE</Set><Call name="addServlet"><Arg>Common Gateway Interface</Arg><Arg>/</Arg><Arg>c
om.mortbay.Servlet.CGI</Arg><Put name="Path">/usr/local/bin:/usr/ucb:/bin:/usr/bin</Put></Call></Cal
l> on class org.eclipse.jetty.server.Server in file:/C:/jetty/etc/jetty.x
我读了一篇文章,其中一个人说这将是码头5的方式而不是9号。我正在研究9,甚至在码头9的文档中我找不到任何关于它的东西。 http://www.eclipse.org/jetty/documentation/9.1.5.v20140505/cgi-servlet.html并没有告诉我如何配置这个码头...
你们能帮帮我吧:( 谢谢你的建议
答案 0 :(得分:1)
我能够运行Perl脚本,如:
print "Content-type: text/html\n\n";
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}
在我的webapps文件夹中使用 perl.xml :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.servlet.ServletContextHandler">
<Set name="contextPath">/perl</Set>
<Set name="resourceBase">F:\perl_scripts</Set>
<Call name="addServlet">
<Arg>org.eclipse.jetty.servlets.CGI</Arg>
<Arg>*.pl</Arg>
<Call name="setInitParameter">
<Arg>commandPrefix</Arg>
<Arg>C:\Perl64\bin\perl.exe</Arg>
</Call>
<Call name="setInitParameter">
<Arg>Path</Arg>
<Arg>F:\perl_scripts</Arg>
</Call>
</Call>
</Configure>
希望这有帮助。