PayPal-Java-SDK 和 Google App Engine - 订阅反射错误

Posted

技术标签:

【中文标题】PayPal-Java-SDK 和 Google App Engine - 订阅反射错误【英文标题】:PayPal-Java-SDK & Google App Engine - Subscription Reflection Error 【发布时间】:2017-05-04 02:10:15 【问题描述】:

我正在尝试使用 PayPal-Java-SDK 在 Google App Engine 上创建一个 PayPal 订阅。我在这个 link 实现的代码中略有不同,但是在创建 PATCH 对象后调用 Plan.update 时出现以下异常。

java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed on protected java.lang.String java.net.HttpURLConnection.method

更新代码以使用“context.usingGoogleAppEngine(true);”后,我收到一条新消息:

Invalid HTTP method: PATCH

所以我假设 usingGoogleAppEngine 禁用反射的使用,但仍然不允许发生 PATCH 操作...这是更改 PayPal 中付款计划状态所必需的。

这里是代码块:

public Plan update(APIContext context, Plan plan) throws PayPalRESTException, IOException 

    List<Patch> patchRequestList = new ArrayList<Patch>();
    Map<String, String> value = new HashMap<String, String>();
    value.put("state", "ACTIVE");

    Patch patch = new Patch();

    patch.setPath("/");
    patch.setValue(value);
    patch.setOp("replace");
    patchRequestList.add(patch);

    try
        plan.update(context, patchRequestList);
    
    catch (PayPalRESTException e) 
        log.warning("PayPalRESTException!: " + e.getMessage());
    
    System.out.println("updated. now returning.");

    return plan;

最后,我在日志中使用 SDK here 创建了一个问题

【问题讨论】:

我错过了非常明显的“context.usingGoogleAppEngine(true);”调用之前的方法。现在添加这个会使程序抛出另一个错误,我现在正在研究:“无效的 HTTP 方法:PATCH” 堆栈跟踪是否显示源自 GoogleAppEngineHttpConnection.java 或 DefaultHttpConnection.java 的错误? The Javadoc states "要激活此功能,请在 SDK 配置文件中设置 'http.GoogleAppEngine = true'",因此您可能需要此额外步骤才能在 App Engine 上使用正确的 HttpConnection 类。 【参考方案1】:

这最终在 2017 年 1 月 31 日得到修复:https://github.com/paypal/PayPal-Java-SDK/issues/262

【讨论】:

【参考方案2】:

我在您的 git hub 文件中没有看到 Patch 的导入语句。能否请您尝试从 PayPal 包中导入补丁。

【讨论】:

以上是关于PayPal-Java-SDK 和 Google App Engine - 订阅反射错误的主要内容,如果未能解决你的问题,请参考以下文章

Android 平台上的 Google+ API 和 Google+ 登录弃用和停用

Google Identity Toolkit、Google OAuth、Firebase Auth 和 Google+ 登录有啥区别

使用 Google 脚本创建和/或更新邮件合并 Google 文档

“未安装以下 SDK 组件:sys-img-x86-addon-google_apis-google-22 和 addon-google_apis-google-22”

iOS:同时使用 Facebook 和 Google,Google Plus 登录

google.cloud.pubsub_v1 和 google.cloud.pubsub 有啥区别?