【问题标题】:Hybris 18.11 conflict with GSON and StripeHybris 18.11 与 GSON 和 Stripe 冲突
【发布时间】:2021-08-05 09:47:27
【问题描述】:

对于我的项目,我使用的是 hybris v18.11,并使用 Stripe 支付网关,我需要使用通过 gson 库提供的 Stripe 的 Charge 对象来获取 rawJsonObject。下面是提供 rawJsonObject 的 StripeObject 中的代码

this.rawJsonObject = ApiResource.GSON.fromJson(this.getLastResponse().body(), JsonObject.class);

我在 hybris 项目中获取了 this.getLastResponse().body() 填充的字符串值,并尝试使用 gson 手动转换它,并且成功了。 我能够在非 hybris 项目(普通 maven/gradle 项目)中获取 rawJsonObject,同时通过 hybris 项目获取相同的 rawJsonObject 返回为空 {}。 我尝试在 hybris 和非 hybris 项目中使用 gson v2.8.2 V2.8.6、v2.5,每次我在非 hybris 项目中收到正确的响应,而 hybris 项目中的 JSON 对象为空。 我在 hybris 项目中尝试使用 Stripe-java-20.47.0.jar 和 Stripe-java-20.36.0.jar 得到了相同的结果空 rawJsonObject。 任何线索都会有所帮助,如果我遗漏了任何内容或需要测试其他内容,请告诉我。

【问题讨论】:

    标签: java json gson stripe-payments hybris


    【解决方案1】:

    这种情况是 100% 发生还是间歇性发生?我想知道响应正文是否可能由于某种原因发生了变异并变得不可用。

    您是否尝试过使用内置的getRawJsonObject() (source)?它会在第一次访问响应时记录这一点,所以如果一个流被消耗,它可能会在这里为您保留。

    【讨论】:

    • 它一直在发生,我已经为内置的 getRawJsonObject() 设置了调试点并且能够访问响应体,这是很好的有效 Json 字符串。根据目前的分析,gson 版本似乎不匹配,通过 GSON.fromJson 获取 JSON 对象的请求不会进入预期的 jar。一旦我得到任何解决方案,处理它就会更新线程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2016-12-22
    相关资源
    最近更新 更多