我有一个工作项目,我有多个线程调用我创建的实用程序函数,它将一个帖子表单发送到我们拥有的内部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()
方法的其余部分之前,线程退出。
我试过了:
自从我完成任何Java编程或线程以来,已经有一段时间了。这是非常简单的,我知道我忘记了。
此外,我已经更改了很多我的代码,并且只显示了重要部分,因为这是工作项目的一部分而且我不想采取行动。