Jelastic環境のGlassfishサーバーでWeb アプリケーション( MyCronTest
) を実行しています。この Web アプリケーションには、 cron-jobで定期的に呼び出したいサーブレット () が含まれています。/test
だから私はJelasticのドキュメントからこのチュートリアルに従いましたが、 Glassfishの代わりにTomcatを使用していて、パスとどのファイルをどこに置くべきかよくわかりません...そして今、私は迷っています;)
サーブレット
ブラウザでサーブレットを直接呼び出すと、次の行が出力されますSystem.out
。
test executed at 05/03/2014 15:00
実行するbashファイルというbashスクリプト
を作成し、ディレクトリに配置しました:myCronJob.sh
glassfish3/temp
#!/bin/bash
curl http://myGlassfish.jelastic.dogado.eu/MyCronTest/test;
もちろん、私はそれをテストしました。それは実行可能であり、動作します(少なくとも自分のコンピューターで実行した場合)。
チュートリアル
に
よると、cron イベント スケジューラを編集する必要があるファイルがあります。まあ、私は(私が推測している)同じことをするべきであることを見つけました。/cron/tomcat
/cron/glassfish
# IMPORTANT NOTE!
# Please make sure there is a blank line after the last cronjob entry.
*/1 * * * * /opt/glassfish3/temp/myCronJob.sh
彼らが私に言ったように、私は最後に空の行を追加しました。私もそれを試してみました
*/1 * * * * /bin/bash /opt/glassfish3/temp/myCronJob.sh
彼らがチュートリアルで提案したように。しかし、まだ出力はありません。エラーはありません..ログファイルを空にするだけです。
私がここで何が欠けているのか誰にも分かりますか? 私は何か間違ったことをしていますか?
ソリューション/編集
Damien's Answerのおかげで、ようやく問題を絞り込むことができました。実際に問題を引き起こしたのは、私のbashスクリプトの行でした:
curl http://myGlassfish.jelastic.dogado.eu/MyCronTest/test;
になるはずだった
curl http://localhost/MyCronTest/test;
ファイアウォールでブロックされたので。幸運なことに、Glassfish は同じマシン / 環境で実行されているため、localhost
動作します。
他のすべては正しいです。