假设我们有一个web服务请求,我们甚至不想用响应来表达:
@WebMethod(operationName = "doSomethingForNicePeopleOnly")
public String doSomethingForNicePeopleOnly(@WebParam(name="username") String user) {
if (userIsNice(user)) {
return "something nice";
} else {
// I'd prefer not to return anything at all, not even a 404...
}
}
不响应给定的Java Web服务请求的最佳技术是什么?
答案 0 :(得分:3)
为什么一无所获?这只会迫使您的连接保持打开状态,直到它超时,从而浪费服务器的时间和用户的时间。
我不知道在Java Web服务中这是多么容易,但是你可以返回202(“接受”但处理不完整,以后可能会被静默拒绝)或204(“无响应”)吗?
答案 1 :(得分:1)
我认为可以在这里考虑几个选择:
返回无用的响应(例如空字符串):
} else {
return "";
}
或抛出异常:
} else {
throw new Exception("whatevah....");
}
或尝试一些延迟策略,然后是#1或#2:
} else {
Thread.sleep(90000); // 90 seconds!
return "";
}
此处,HTTP代码403-Forbidden可能适合作为第4选项。