当外部服务尚未回复时,Websphere 7.0 正好在 180 秒后抛出 503

Websphere 7.0 throwing 503 exactly after 180 seconds when the external service hasn't replied yet

我开发了一个 struts2 应用程序,可以将文件写入外部系统(RESTful 已在 PHP 中编写的 Web 服务),它必须将文件转换为 TIFF 和也扫描这些文件。 这是代码片段:

    HttpURLConnection conn = getConnection(Resource.VIRUS_SCAN_URL.getValue(), Constants.POST);
    conn.setDoInput(true);
    conn.setDoOutput(true);
    OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), Constants.UTF8);

    String payload = createJsonString(dto);
    writer.write(payload);
    writer.close();

    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    StringBuffer jsonString = new StringBuffer();

问题是当文件很大并且外部系统花费的时间超过 180 秒(3 分钟)时,我的服务器(websphere 7.0)抛出 503 异常。我确定问题出在服务器配置上,因为对于同一组文件,我尝试从 jboss 服务器提交文件,花了 5 分钟,响应成功。

我尝试根据 this 指南将 WSHTTP 超时设置从 180 更改为 500,但我的服务器仍按原样运行。

非常感谢这方面的任何指导。

我终于解决了这个问题。问题不在于配置。我加了

conn.setConnectTimeout(0);

到连接对象,它解决了问题。