【问题标题】:PayPal-Java-SDK & Google App Engine - Subscription Reflection ErrorPayPal-Java-SDK 和 Google App Engine - 订阅反射错误
【发布时间】: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 类。

标签: java rest google-app-engine reflection paypal


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 2014-05-12
      • 2012-07-18
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2015-07-22
      相关资源
      最近更新 更多