jsp请求/响应超时实现

时间:2014-03-10 09:01:29

标签: jsp java-ee httprequest

我正在调用一个向我返回一些数据的Web服务(jsp页面)。我想暂停,因为有时需要很长时间才能做出回应。实现这一目标的正确方法是什么?如何设置请求超时和响应超时?可以使用session.setMaxInactiveInterval()吗?

来实现这些目标

我的jsp页面看起来像这样 `public JSONObject performLogic(JSONObject state,Map additionalParams)抛出异常{

String callingSystem = state.getString("caller");
String  cli = state.getString("cli");
String taxnumber = state.getString("taxnumber");

PosDataReaderService posService = new PosDataReaderService();
PosDataReader pos = posService.getPosDataReaderSoapPort();

OrderDataRequest orderDataRequest = new OrderDataRequest();
orderDataRequest.setTaxNumber(taxnumber);
Caller caller = new Caller();
caller.setCallingSystem(callingSystem);
OrderDataResponse orderDataResponse = pos.getOrderData(orderDataRequest, caller);

JSONObject result = new JSONObject();

result.put("var_ws_passportstatuscode", orderDataResponse.getPasportStatusCode());

return result;

};`

1 个答案:

答案 0 :(得分:0)

您的问题的答案在这里How to timeout a thread您使用java.util.concurrent.ExecutorService并创建一个实现java.util.concurrent.Callable的Task类,并将您想要中断的代码放在那里等等。

我试图自己将该解决方案移植到JSP,但遇到了一个错误,我在https://stackoverflow.com/questions/22388069/error-porting-thread-timeout-solution-to-jsp上提出问题

但我想说你可能需要创建一个servlet并在servlet中使用该解决方案。似乎JSP不允许您在JSP中定义的类中覆盖超类方法。无论如何最好使用servlet。