Java Runnable使用实用程序函数调用

时间:2017-01-23 22:31:08

标签: java multithreading jenkins javax javax.ws.rs

我有一个工作项目,我有多个线程调用我创建的实用程序函数,它将一个帖子表单发送到我们拥有的内部API。

我在这里使用callAPI方法,它位于实用程序类中,它是public,final和static:

public static  int callAPI(String url, TaskListener listener, String operation, String id, String password, String sUser){
      Client client = ClientBuilder.newClient();



      Form form = new Form();
      form.param("case", id);
      form.param("user", sUser);
      form.param("password", password);
      listener.getLogger().println("*******************************************************");
      listener.getLogger().println("Sending API Service Request");

      Response response = client.target(url)
              .path(operation)
              .request(MediaType.APPLICATION_JSON)
              .post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE));


  }

然后我在Runnable类中使用了这个run方法:

  @Override
  public void run(){

       listener.getLogger().println("Thread Started.\n");

       int runId = Utility.callAPI(wUrl, listener, operation, password, sUser);

       listener.getLogger().println("call completed");
  }

那么在Jenkins控制台输出中实际打印的是什么:

*******************************************************
Sending API Service Request
Thread Started.

这意味着我知道正在调用我的run()方法,所以我的线程正在启​​动。我知道它可以在实用程序中看到我的runAPI方法。

现在我所能收集到的就是这一行:

 Response response = client.target(url)
                  .path(operation)
                  .request(MediaType.APPLICATION_JSON)
                  .post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE));

发送请求,然后在完成run()方法的其余部分之前,线程退出。

我试过了:

  • 设置线程睡眠循环
  • 将呼叫置于while循环中

自从我完成任何Java编程或线程以来,已经有一段时间了。这是非常简单的,我知道我忘记了。

  

此外,我已经更改了很多我的代码,并且只显示了重要部分,因为这是工作项目的一部分而且我不想采取行动。

0 个答案:

没有答案