如何隐藏 Kafka connect api 未处理异常的堆栈跟踪
Posted
技术标签:
【中文标题】如何隐藏 Kafka connect api 未处理异常的堆栈跟踪【英文标题】:How to hide stack trace of Kafka connect api unhandled exception 【发布时间】:2019-09-03 05:28:08 【问题描述】:作为在分布式模式下注册连接器的一部分,当在 API 请求中传递一些无效的 json 有效负载时,我在响应完整堆栈跟踪时收到错误,这在我的情况下是不可取的。
响应示例:
HTTP/1.1 500 Internal Server Error Connection: close Date: Fri, 26 Jul 2019 08:27:17 GMT Content-Type: application/json Content-Length: 443 Server: Jetty(9.4.11.v20180605)
"error_code":500,"message":"Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('')\n at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor $UnCloseableInputStream); line: 2, column: 46] (through reference chain: org.apache.k afka.connect.runtime.rest.entities.CreateConnectorRequest[\"config\"])"
有没有办法隐藏或缩短完整的堆栈跟踪。
注意:我使用的是 Hortonworks Kafka 包。
【问题讨论】:
【参考方案1】:REST API 返回 REST API 返回的内容 :)
因此,您可以 (a) 停止发送无效的 JSON;) (b) 编译您自己的 Kafka 版本并禁用您不希望返回的输出位。
【讨论】:
谢谢罗宾 :)。这是 Pen 测试发现的一部分,他尝试了所有无效的 JSON ;)。选项 (b) 更合适。以上是关于如何隐藏 Kafka connect api 未处理异常的堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章
使用 Kafka Connect API JDBC Sink 连接器示例到 Oracle 数据库的 Kafka 主题