3

我试图弄清楚如何用 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 不同?

请帮忙。

谢谢你。

更新我添加了 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 并根据此配置

LoadModule cgi_module modules/mod_cgi.so ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/" 好像已经启用了。

那么现在的问题是什么?

4

3 回答 3

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
于 2013-04-25T20:56:09.600 回答
0

文章说您将在 cgi 脚本中执行 java jar 。您需要通过使用 hello.jar 文件作为参数正确调用 java 可执行文件来确保此脚本设置为执行您的 jar 文件。还要确保您的 Web 服务器配置正确以允许执行 cgi 脚本。

于 2013-04-25T20:13:41.307 回答
0

您还必须对您的 cgi 和 java 文件进行 chmod,以便其他人可以执行它们。

于 2014-03-10T16:53:26.770 回答