2013-04-25 109 views
2

我想弄清楚如何用Java编写CGI脚本。用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,......保持不变?或者我应该输入什么?

只是为了使事情更清楚。 我把在C的cgi_lib,hello.java和hello.cgi:\ XAMPP \ CGI-lib的

而且在C hello.html的:\ XAMPP \ htdocs中\测试

当我试图它连接返回我这个

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 httpd.conf中:\ XAMPP \ apache的\ conf以配置根据this

的LoadModule cgi_module模块/ mod_cgi.so 的ScriptAlias/cgi-bin目录/“C:/ Program Files/Apache Gr oup/Apache/cgi-bin /“ 似乎已经启用。

那么现在的问题是什么?

+0

你确定你确实想用java编写CGI脚本,而不是使用JSP吗? – AlexR 2013-04-25 19:49:53

+0

用于学习目的。其实我想用fastcgi,但我不知道从哪里开始。我想用于PHP <-> Java。但找不到任何教导在xampp,java,php中安装/配置fastcgi的网站。也许我会愚蠢的去理解。而且我无法真正发现任何网站都会教导如何使用PHP和Java中的脚本进行通信。那就是为什么我会先尝试CGI。至于JSP,我现在正在学习它。谢谢 – 2013-04-26 17:13:24

回答

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 
+0

我必须写$ CONTENT_TYPE,$ CONTENT_LENGTH,$ REQUEST_METHOD .....? – 2013-04-26 04:47:45

0

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

+0

嗨,我完全新的cgi。所以我必须把我的hello.java改成hello.jar吧?那么cgi脚本与上面显示的相同吗?如何配置网络服务器? – 2013-04-26 04:47:02

0

你也必须chmod你的cgi和java文件,以便其他人可以执行它们。

+0

因为这不是完整的答案,所以这可能只是对现有答案的评论。 – Dan 2014-03-10 17:11:56