- 締切済み
CGIで呼び出したスクリプトでJAVAは動く?
やりたいことはJAVAスクリプトのパラメータを状況に合わせてCGIで生成してJAVAを実行させたいです。 いま、.shtmlファイルの一部をcgiで実行し、JAVAのパラメータの一部をCGIの実行結果から持ってきてファイルを完成させてみましたが、Javaは動いてくれません。 CGIからパラメータを持ってくるのではなく、普通にhtmlファイルの中にJavascriptのパラメータを全部記述してやれば動いてくれて、そのソースとCGIを絡めた場合のソースと比べましたが全く同じですが動きません。 これは何が原因なのでしょうか。 パラメータを全て記述すると膨大になるために、必要な部分だけの記述にしたくてCGIで選択できるようにしてみたのですが・・・ 単なる何かソースの書き間違いでしょうか。(何度も見比べたのですが・・・) それとも元々こんなことできないのでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- steel_gray
- ベストアンサー率66% (1052/1578)
失礼しました。 #1の補足でSSIの展開もうまくいっていると書いてありましたね。 ちょっとわからないです。
- steel_gray
- ベストアンサー率66% (1052/1578)
JAVAのほうはわからないのですが。 とりあえずCGIの実行とSSIの処理はうまくできているんでしょうか? ブラウザのHTMLソース表示をして、param文がうまく展開されているかどうか確認してみてましたか? SSI構文の処理はサーバが行うので、ブラウザでソース表示をした時にはSSI構文の部分がCGIの実行結果(param文)に置き換わっているはずです。
- steel_gray
- ベストアンサー率66% (1052/1578)
できるはずですよ。 (ちょっとJAVAって用語があるけど、全てJavscriptですよね??) CGIの言語がわからないけどPerlでのサンプル。 === sample.cgi #! ~ perlのパス print <<OUTPUT; Content-Type: application/x-javascript abc = 'test'; OUTPUT exit; === sample.html <html><head> <script type="text/javascript" src="sample.cgi"></script> <script type="text/javascript"> alert(abc);//結果 test が表示される。 </script>
補足
うまく説明できなくてすみません。 htmlファイル上で.jarファイルを実行させたいのですが、 <applet id="■○" code="×△" archive="??.jar"> <param name=×× value=○○> </applet> としている部分の <param name=×× value=○○> が実際には600くらいになるので、状況に合わせて必要な<param>だけを書き出すため、SSIで<applet...>~</applet>の部分を <!--#exec cmd="○□.cgi" --> として呼び出してhtmlファイルに書き出しています。 このようなやり方をせずにそのままhtmlファイルにソースを記述した場合と比べて何の違いもないですし、SSIも他同様にやっていて作動しています。 でもJavaは動いてくれずjavaのエリアだけ確保され、そこにはXのようなマークがあるだけです。 コンソールを開いて確認してみましたが、以下のような記述がありました。 load: クラス ○△× が見つかりません。 java.lang.ClassNotFoundException: ○△× at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.io.IOException: Stream closed. at java.net.PlainSocketImpl.available(Unknown Source) at java.net.SocketInputStream.available(Unknown Source) at java.io.BufferedInputStream.available(Unknown Source) at sun.net.www.MeteredStream.available(Unknown Source) at sun.net.www.http.KeepAliveStream.close(Unknown Source) at java.io.BufferedInputStream.close(Unknown Source) at sun.applet.AppletClassLoader.getBytes(Unknown Source) at sun.applet.AppletClassLoader.access$100(Unknown Source) at sun.applet.AppletClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 10 more やっぱりCGIでソースを書き出しても動かないのでしょうか。