我试图弄清楚如何用Java编写CGI脚本。
我按照这个例子 - > http://www.javaworld.com/jw-01-1997/jw-01-cgiscripts.html?page=1
它提供cgi_lib.java,hello.html和hello.java
一切似乎都很好,但在HTML部分。 该操作指向cgi_lib / hello.cgi
没有提供cgi。所以我尝试使用cgi_lib / hello.java,并在hello.java中打印完整的源代码。
然后我尝试将hello.java扩展编辑为hello.cgi,然后再次尝试。 浏览器返回错误500。
有什么问题? 是这样的,有一些特定的方法可以将hello.java编译成hello.cgi吗? hello.cgi中的脚本与hello.java不同?
请帮忙。
谢谢。
UPDATE 我添加了hello.cgi
#!/bin/sh
java -Dcgi.content_type=$CONTENT_TYPE -Dcgi.content_length=$CONTENT_LENGTH - Dcgi.request_method=$REQUEST_METHOD -Dcgi.query_string=$QUERY_STRING -Dcgi.server_name=$SERVER_NAME -Dcgi.server_port=$SERVER_PORT -Dcgi.script_name=$SCRIPT_NAME -Dcgi.path_info=$PATH_INFO hello
$ CONTENT_TYPE,$ CONTENT_LENGTH,...保持不变?或者我应该输入什么?
只是为了让事情更清楚。 我把cgi_lib,hello.java和hello.cgi放在C:\ xampp \ cgi-lib
中在C:\ xampp \ htdocs \ test
中的hello.html当我尝试连接时,请将此返回
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
couldn't create child process: 720002: hello.cgi
If you think this is a server error, please contact the webmaster.
Error 500
localhost
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
我检查了c:\ xampp \ apache \ conf中的httpd.conf并根据this进行配置
LoadModule cgi_module modules / mod_cgi.so ScriptAlias / cgi-bin /“C:/ Program Files / Apache Group / Apache / cgi-bin /” 似乎已经启用。
那么现在问题是什么?
答案 0 :(得分:2)
hello.cgi的内容显示在文章第2页的顶部。
#!/bin/sh
java -Dcgi.content_type=$CONTENT_TYPE -Dcgi.content_length=$CONTENT_LENGTH -Dcgi.request_method=$REQUEST_METHOD -Dcgi.query_string=$QUERY_STRING -Dcgi.server_name=$SERVER_NAME -Dcgi.server_port=$SERVER_PORT -Dcgi.script_name=$SCRIPT_NAME -Dcgi.path_info=$PATH_INFO hello
答案 1 :(得分:0)
文章说你将从cgi脚本中的执行java jar 。您需要确保将此脚本设置为执行jar文件,方法是使用hello.jar文件作为参数正确调用java可执行文件。还要确保正确配置了Web服务器以允许执行cgi脚本。
答案 2 :(得分:0)
你还必须chmod你的cgi和java文件,以便其他人可以执行它们。