1
嗨我有一個服務代理中的Web服務類,它有一個返回void的方法。我必須檢查服務是否正常運行。由於該方法返回void,我無法獲得服務的狀態。有沒有辦法通過使用或不使用ping來檢查此Web服務方法的狀態?如何Ping一個具有返回類型的Web服務方法void
下面是我的web服務方法,它有返回類型void。此Web服務方法將執行一些驗證並觸發另一個方法,以便它不會返回任何值。
@GET
@Path("/triggers/{name}")
public void triggerMethod(@PathParam("name") String triggername, @Context HttpServletRequest aHttpRequest){
//code
}
以下是ping功能已存在的代碼,但它會檢查響應的狀態。此代碼適用於webservices方法,該方法是returnig響應並接受APPLICATION_JSON。
private void invoketrigger(ServiceDataDTO myData){
try{
target.request().headers(getRequestHeaders()).accept(MediaType.APPLICATION_JSON).get();
Client client = ClientBuilder.newClient();
WebTarget target = client.target(myData.getServiceURI());
Response response = target.request().headers(getRequestHeaders()).accept(MediaType.APPLICATION_JSON).get();
if(response.getStatus() == 200){
status = "green";
}
}
The code which I tried for my method is given below.
private void invoketrigger(ServiceDataDTO myData){
try{
target.request().headers(getRequestHeaders()).accept(MediaType.APPLICATION_JSON).get();
URL url = new URL(myData.getServiceURI());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(10000);
connection.setReadTimeout(10000);
connection.setRequestMethod("GET");
connection.connect();
int response = connection.getResponseCode();
if(response == 200){
myData.setServiceStatus(ServicesDashboardConstants.STATUS_OK);
}
}catch(Exception e){
System.out.println(e);
}
}
response.ok應返回 –