1

在我当前使用 IBM Content Collector 4.0.1 SP5 和 IBM Filenet P8 Content Engine 5.2.1 的项目中,我需要从文件系统收集文件并将它们添加到某个 P8 的对象存储中。

在服务器上执行上传后或发生错误时,我插入了一个 WS 调用 Web 服务任务,以便提交一些要写入数据库的数据。

配置如下:
在此处输入图像描述

根据 IBM 提供的WS 调用 Web 服务任务描述页面中的要求,该 Web 服务符合 REST ,代码摘录如下:

@RequestMapping(value = "/filenet/notificaArchiviazione", method = { RequestMethod.GET,
                      RequestMethod.POST }, consumes = { MediaType.APPLICATION_FORM_URLENCODED_VALUE,
                                     MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE }, produces = {
                                                    MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
       @ResponseBody
       String notificaArchiviazione(@RequestParam("fileName") String fileName, @RequestParam("esito") String esito) {

当 ICC 尝试调用 WS 时,我收到如下 HTTP/1.1 400 Bad Request 错误:

2017-10-20T13:47:10.394Z FINEST [47] 准备发送到 web 服务的内容:{"e:\report\amm_000001_00001\2017\10\201710_amm_000001_00001_qxn_report_00_errato.pdf":{"esito":"KO","fileName ":"Prova"},"e:\report\amm_000001_00001\2017\10\201710_amm_000001_00001_qxn_report_00_errato.xml":{"esito":"KO","fileName":"Prova"}}
[com.ibm.afu.connector .webservice.task.InvokeServiceTask getInputHttpEntity] [CTMS-task-12dc 44] 2017-10-20T13:47:10.456Z FINEST [48] 配置: http: //192.168.8.29 :8080/sirfAcq/filenet/notificaArchiviazione fileName
esito
[ com.ibm.afu.connector.webservice.task.InvokeServiceTask 执行] [CTMS-task-12dc 44] 2017-10-20T13:47:10。830Z 最佳 [49] 调用 web 服务 URI:http://192.168.8.29:8080/sirfAcq/filenet/notificaArchiviazione
[com.ibm.afu.connector.webservice.task.InvokeServiceTask 执行] [CTMS-task-12dc 44] 2017-10-20T13:47:13.763Z 最佳[50] 调用耗时(毫秒):2933
[com.ibm.afu.connector.webservice.task.InvokeServiceTask 执行] [CTMS-task-12dc 44] 2017-10-20T13:47:13.763Z 严重 [51] 失败调用 web 服务:HTTP/1.1 400 Bad Request
[com.ibm.afu.connector.webservice.task.InvokeServiceTask execute] [CTMS-task-12dc 44] 2017-10-20T13:47:13.841Z FINEST [52] [ctms -native] 2017-10-20T13:47:13Z Trace2 0x12dc 调用成功,任务完成...

我究竟做错了什么?

4

1 回答 1

0

最后我设法让它工作,consumes从注释中消除参数;这样做将强制 WS 接受通过 GET 或 POST 方法提供的所有可能的消息。

此外,我收到了IBM ICC 和 eDM L2 支持人员的提示,他们建议:

您的 Web 服务器似乎不理解从 ICC 发送的请求。

这是从 ICC 发送的请求(来自您提供的日志片段):

{“ xml":{"esito":"KO","fileName":"Prova"}}

检查您的代码是否能够解析上述数据。

于 2017-11-16T08:19:35.367 回答