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”