点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
亲爱的
我正在尝试在调用异常时获取http状态代码。 我认为我的位置正确,但是出现以下错误:
java.lang.NoSuchMethodException:无方法签名:com.sap.it.rt.adapter.openconnectors.exceptions.OpenConnectorsException.getStatusCode()适用于参数类型:()值:[ ]
消息属性:
CamelExceptionCaughtcom.sap.it.rt.adapter.openconnectors.exceptions.OpenConnectorsException:HTTP操作失败:{" requestId":" 5e8c93f9e4b02c84ec1e41f4","消息":"服务不可用"," providerMessage":"错误-{代码 = 503,消息=该服务当前不可用。,status =不可用}"}状态码:503
我的代码:
def map = message.getProperties(); def ex = map.get(" CamelExceptionCaught"); 如果(ex!= null){ message.setHeader(" HTTP_CODE",ex.getStatusCode()); }
对此有任何帮助吗?
嗨,
" CamelExceptionCaught"属性仅包含IFlow捕获的任何异常。 这些异常不必特别是" AhcOperationFailedException"类型。 (它们只应继承Throwable类。)但是 getStatusCode()方法是Exception类" AhcOperationFailedException"的方法。 查看您的帖子时,我们可以看到您捕获的异常是另一种类型。 特别是它的类型为" OpenConnectorsException"。
此异常类没有" getStatusCode"方法。 但是它提供什么方法? 通过使用反射(如本文在本文中所示) 我们可以看到=" https://people.sap.com/mortenw"> Morten Wittrock ),OpenConnectorsException类仅带来了一个自己的(未继承)方法,称为" getMessage"。 因此,您唯一可以调用的函数是getMethod(),它返回一个String。
尽管如此,您仍可以在上面的输入中看到错误消息文本确实包含状态代码。 因此解决方案可能是调用getMessage以获取错误文本,然后解析该错误文本以获取状态代码。
下面的代码是"虚拟"代码,写在我头上。 因此,也许您必须纠正一两件事,但通常它应该像这样工作:
Hello Prabhu,
请参阅以下适用于HTTP适配器的帮助文档。
https://help.sap.com/viewer/368c481cd6954bdfa5d0435fd4e1d4e4df1d3df3df3df3dfd4e1dfd4e4d1e3d/a>
对于开放式连接器适配器,您可能需要在运行时配置中将所有标头列入白名单,然后检查返回错误状态代码的相应标头。
Sriprasad Shivaram Bhat
一周热门 更多>