2013-04-25 105 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