从php运行jar文件并管理异常?

问题描述:

我有一个使用Jsoup库的jar文件,当我启动它时,它会打开一个网站,并从该网站输出一个简单的线条。 要从我的个人网站访问它,我使用exec() php函数调用它。大多数情况下,这个功能完美,输出效果很好。但是,有时候,我什么都没有。我从ssh会话中多次启动jar,并且我看到大约5%的时间,我有一个错误消息,Exception in thread "main",由java.net.SocketTimeoutException: Read timed out引起。 我认为,也许该网站需要太多的时间来回应,Java只是中断程序。我怎么能管理这个?从我的PHP或从我的罐子? 说,虽然我没有输出,我必须再次运行罐子。我正在考虑在php中这样做,但我认为最好是直接在jar中管理它。 非常感谢您的帮助。从php运行jar文件并管理异常?

你应该在jar中避免Jsoup的超时而不是重试执行jar。不知道使用jsoup的java应用程序的代码。但应该有如下条目:Connection con = Jsoup.connect("the page url")这是创建jsoup连接的位置。根据docs的默认超时时间为3秒。 您可以增加此超时像5秒的较高值(请注意,该方法需要毫秒):

con.timeout(5000); 

或没有局部变量:

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

即使是20秒,我仍然有错误,就像我必须在真正起作用之前运行我的jar 1或2次。 现在调用它的php有一个执行jar的循环,直到输出为止: 'while(empty($ output)){ \t \t exec(“java -jar check_nfo.jar”,$ output); \t \t sleep(5); \t}' – saperlipopette

+0

你可以尝试设置一个非常高的值lile 10分钟,看看它是否真的超时问题 –

+0

谢谢,你是最棒的!具有很高的价值,它的工作原理;) – saperlipopette