如何在java

时间:2015-09-07 10:43:29

标签: java web-services

您好我正在使用一个webservice,它在代码执行完成后返回一个输出。 Web服务是否可能以自定义字符串的形式返回状态:测试已启动,正在测试,测试已完成等。

我需要做些什么才能实现这一目标。这是我当前的代码,我希望json字符串作为输入,提供的json被解析并正在执行进一步的处理。

//Class
public class WebserviceClient 
{
    /** calling constructor to initialize logger */
    Utils c = new Utils();
    Logger logger = Logger.getLogger(WebserviceClient.class.getName());


    @Path("/test")
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    //@Produces(MediaType.APPLICATION_JSON)
    public String processRequest(final String inputData)
    {
        String executionID = "NOT_FOUND" ;
        String result = "";

        try 
        {
            /** creating a pool of threads to submit a task to a callable thread */
            ExecutorService ex = Executors.newFixedThreadPool(5);

            Future<String> futureObject = ex.submit(new Callable<String>() {
                @Override
                public String call() throws Exception 
                {
                    logger.info("Parsing Received Request: "+inputData);
                    String rID = new JSONObject(inputData).getString("id");
                    logger.info("Received Id: "+rID + " From Request: "+inputData);

                    if(new RunTest().isTestCompleted(rID))
                    {
                        return rID;
                    }
                    else
                    {
                        return "777";
                    }
                }
            });

            result = futureObject.get();

            if(futureObject.get()!=null)
            {
                ex.shutdown();
            }
            else{
                logger.debug("call id: "+executionID +" result is not generated yet. ");
            }

            logger.info("call id && Result: "+result);
        }
        catch(Exception e) 
        {
            logger.error("call id: "+executionID, e);
        }
        return result;
    }
}

1 个答案:

答案 0 :(得分:0)

您需要以高频率连续轮询服务器以获得当前状态。

如需更多信息,请查看:

Continuous polling of output using spring ,rest and angular js

这包括使用WebSockets等的设计考虑,但我没有直接的解决方案。