2016-09-06 22 views
0

私はJsoupライブラリを使用するjarファイルを持っています。起動すると、Webサイトが開き、jarファイルはそのWebサイトから簡単な行を出力します。 私の個人的なウェブサイトからアクセスするには、exec() php関数で呼びます。ほとんどの場合、これは完全に機能し、出力はうまく表示されます。しかし、時々、私は何も持っていません。私はsshセッションから何回もjarを起動しました。そのうち約5%がエラーメッセージで、Exception in thread "main"と表示されました。これはjava.net.SocketTimeoutException: Read timed outによって引き起こされました。 私は、サイトが応答するのに時間がかかり、Javaがプログラムを中断するだけかもしれないと思います。どうすればこれを管理できますか?私のPHPや私の瓶から? 出力していない間にもう一度jarを実行しなければならないと言っています。私はPHPでそれを行うことを考えていたが、私はそれが瓶の中で直接管理する方が良いと思う。 ご協力いただきありがとうございます。PHPからjarファイルを実行し、例外を管理しますか?

答えて

1

jarを実行しようとするのではなく、jarファイルのタイムアウト値を小さくする必要があります。 jsoupを使ってJavaアプリのコードを知らなくても。次のようなエントリがあるはずです:Connection con = Jsoup.connect("the page url")これはjsoup接続が作成される場所です。 docsによるデフォルトタイムアウトは3秒です。 あなたは5秒(メソッドは、ミリ秒を期待していることに注意してください)のような高い値にこのタイムアウトを増やすことができます

con.timeout(5000); 

またはローカル変数なし:でも20秒で

Jsoup.connect("the page url").timeout(5000).get() 
+0

、私はまだことを持っていますエラー、私は実際に動作する前に私は1〜2回瓶を実行する必要があります。 これを呼び出すphpは、出力を与えるまでjarを実行するループを持っています: 'while(empty($ output)){ \t \t exec(" java -jar check_nfo.jar "、$ output); \t \t sleep(5); \t} ' – saperlipopette

+0

本当に高い値のlileを設定して、実際にタイムアウトの問題かどうかを調べることができます –

+0

ありがとう、あなたは最高です!高い価値を持つ、それは動作します;) – saperlipopette

関連する問題