Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何选择不响应Java Web服务中的请求?_Java_Web Services_Http_Jax Ws - Fatal编程技术网

如何选择不响应Java Web服务中的请求?

如何选择不响应Java Web服务中的请求?,java,web-services,http,jax-ws,Java,Web Services,Http,Jax Ws,假设我们有一个Web服务请求,我们甚至不想用响应来美化它: @WebMethod(operationName = "doSomethingForNicePeopleOnly") public String doSomethingForNicePeopleOnly(@WebParam(name="username") String user) { if (userIsNice(user)) { return "something nice"; } else {

假设我们有一个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服务请求的最佳技术是什么?

为什么不返回任何内容?这只会迫使您的连接保持打开状态,直到超时为止,从而浪费服务器和用户的时间


我不知道在Java web服务中这样做有多容易,但您能返回202(“已接受”但处理未完成,稍后可能会被无声拒绝)或204(“无响应”)吗?

我想您可以在这里想出一些选择:

返回无用的响应(例如空字符串):

或引发异常:

} else {
  throw new Exception("whatevah....");
}
或者尝试一些拖延战术,然后是#1或#2:


此外,禁止使用HTTP代码403作为第四个选项在这里可能是合适的。

谢谢,+1,并接受。基本思想是以编程方式模拟断开连接。204对我来说是最干净的,我会看看这是否符合要求。哦,如果你想断开连接,你可以试着关闭插座吗?(同样,我对Java web服务一无所知,但如果您能够访问底层的
Socket
类,您可以自己尝试关闭它。)是的,我想这就是重点——我认为,在处理Java web服务时,这些东西大部分都是从我这里抽象出来的。我希望这里有捷径。我想做的正是,告诉底层套接字挂断。+1,我现在实际上在使用延迟。缺点是客户端必须有一个已知的超时。
} else {
  throw new Exception("whatevah....");
}
} else {
  Thread.sleep(90000);  // 90 seconds!
  return "";
}