Playframework Ning WS и поток

У меня есть простой метод Java для загрузки файла с локального диска в удаленный веб-сервис, и он отлично работает в классе контроллера.

Теперь я переместил этот метод в отдельный класс. Я пытаюсь вызвать этот метод из потока:

    public void run(){

        while (true){
            System.out.println("Geting next Task for processing ...");


            try {

                CommonUtils.uploadVideo(32);


                Thread.sleep(20000);

            } catch (InterruptedException | IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ExecutionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
}

@Inject
static
WSClient ws;

synchronized static void uploadVideo(int taskId) throws  InterruptedException, ExecutionException, IOException {
     ....
     ....
     ...

        com.ning.http.client.AsyncHttpClient underlyingClient =  (com.ning.http.client.AsyncHttpClient) ws.getUnderlying();

        final String response;

        response = underlyingClient.preparePost("http://192.16.10.125:9001/publish").
                                setHeader("watermark", "0").
                                addBodyPart(new FilePart("file", file)).execute().get().getResponseBody().toString();


  }

И я получил ошибку:

Exception in thread "Thread-8" java.lang.NullPointerException
        at utils.CommonUtils.uploadVideo(CommonUtils.java:308)
        at utils.TaskRunner.run(TaskRunner.java:88)
        at java.lang.Thread.run(Unknown Source)

Что случилось? Является ли проблема асинхронного вызова веб-службы?

0 ответов

Другие вопросы по тегам