0
我開始有一個休息界面Netty。我得到這個例外:當檢查Netty服務器是否啓動時替代睡眠?
javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request
at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:287)
at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:436)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:102)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:64)
at com.sun.proxy.$Proxy20.ping(Unknown Source)
at com.openet.atf.agent.proxy.SlaveRemoteProxy.ping(SlaveRemoteProxy.java:41)
at com.openet.atf.agent.manage.Master.startSlaves(Master.java:86)
at com.openet.acceptance.runner.AcceptanceRunner.main(AcceptanceRunner.java:195)
Caused by: org.apache.http.conn.HttpHostConnectException: Connection to http://ovm1:8889 refused
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:283)
... 7 more
Caused by: java.net.ConnectException: Connection refused
我通過做一個Thread.sleep(5000);
阻止了這種情況的發生。我正在尋找更好的替代sleep
。睡眠總是假定時間長度是5秒。
「睡眠總是假定的時間長度爲5秒」 - 那是好還是壞關於你的要求是什麼?您是否考慮過Quartz Scheduler或ScheduledExecutorService? – Fildor
您是否正在連接到本地(如在應用程序中)REST服務,並且您希望在繼續之前等待其啓動並運行,或者您是否試圖連接到可能運行或可能不運行的外部應用程序?還是我有完全錯誤的問題? –
如果它在4秒內出現,我不想睡5秒,如果需要10秒鐘,那麼5秒不夠長。使用超時並不是真正可靠的方法來檢查它是否已啓動。輪詢一些東西會更好。我正在連接到我在遠程節點上啓動的Netty REST服務。 – eeijlar