【发布时间】:2017-04-06 07:30:30
【问题描述】:
我正在安静地调用 servlet doGet() 方法。在doGet() 方法中,我正在进行一个方法调用,该方法调用需要花费大量时间进行处理,因此doGet() 方法超时并且无法将响应发送回进行调用的应用程序。
所以现在我想立即将响应发送回调用doGet() 方法的应用程序doGet() 被调用。
我可以使用线程吗?一个线程会回复,而另一个线程会继续方法调用。我需要使用任何webservice 框架,例如Jersey 吗?
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("in the Do Get");
String tableName = (String)request.getParameter("tableName");
tableName = tableName.replaceAll("[^A-Z0-9_]", "");
System.out.println("setup connections");
SampleService sampleService = new SampleService(new Properties());
Thread t = new Thread(new Runnable() {
public void run() {
// stuff here
sampleService.execute(tableName);
}
});
t.start();
我正在创建类来实现 Runnable 接口,并在 run 方法中编写方法调用(需要大量时间处理的方法)的逻辑。还有如何在这个运行时发送响应
【问题讨论】:
标签: java web-services rest jersey