【问题标题】:Access Manager WebSEAL could not complete your request due to an unexpected error.由于意外错误,Access Manager WebSEAL 无法完成您的请求。
【发布时间】:2018-09-14 06:25:46
【问题描述】:

我使用的服务器:Websphere

我正在尝试上传电子表格。 java 代码逻辑使用 org.apache.poi.ss.usermodel,我从 excel 中获取一张工作表并遍历行。

 Sheet sheet = wb.getSheetAt(0);
 Iterator rows = sheet.rowIterator();

我在每个单元格上都有验证逻辑。然后我调用数据库来存储所有的值。

当电子表格很小时,这很有效。但是,当它很大(超过 1000 条记录)时,我会收到以下错误:

Server Error

Access Manager WebSEAL could not complete your request due to an unexpected error. 

Diagnostic Information

Method: POST

URL: /acx/myApp/xlImport

Error Code: 0x38cf04d3

Error Text: DPWWA1235E Could not read the response status line sent by a third-party server. Possible causes: non-spec HTTP headers, connection timeout, no data returned. This is not a problem with the WebSEAL server. 

Solution
 Provide your System Administrator with the above information to assist in troubleshooting the problem. 

【问题讨论】:

    标签: server websphere webseal


    【解决方案1】:

    我怀疑响应时间比 WebSEAL 的 http-timeout(或 https-timeout)长。在版本 9 上,默认值似乎是 120 秒:

    https://www.ibm.com/support/knowledgecenter/SSPREK_9.0.0/com.ibm.isam.doc/wrp_config/reference/ref_other_wb_timeout.html

    如果您可以提高该值,即使只是针对您的特定路口,这可能是您的一个选择。

    但是,如果处理时间越来越长,对于较大的文件,您可能需要考虑更改编程模型。快速接受文件,异步执行验证,然后有一个“结果”页面/URL,您可以稍后在其中查看完成状态。

    这是我们为一个非常相似的场景所做的,上传电子表格并对其进行验证。在我们的例子中,我们使用了 MDB,因为这是几年前的 Java EE 标准方法。今天,我们可能会改用ExecutorService

    如果该选项不可接受或不吸引人,您可能可以实现一些东西,在您进行时定期将数据位写回响应流。但我不知道这是否会阻止 WebSEAL 连接超时。

    【讨论】:

    • 谢谢。我写了另一个异步过程。成功了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多