Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在部署的appengine数据库上调试eclipse中的服务器代码?_Java_Eclipse_Google App Engine_Oauth_Remoteapi - Fatal编程技术网

Java 如何在部署的appengine数据库上调试eclipse中的服务器代码?

Java 如何在部署的appengine数据库上调试eclipse中的服务器代码?,java,eclipse,google-app-engine,oauth,remoteapi,Java,Eclipse,Google App Engine,Oauth,Remoteapi,我在Eclipse中有一个Google AppEngine(Java)项目。我想在Eclipse中调试本地代码,但使用AppEngine上部署的数据库。到目前为止,我使用带有用户名/密码的远程API(旧方法) 此方法将被弃用,我希望使用OAuth,但当我尝试使用它时,它会引发异常: java.lang.IllegalStateException: OAuth-based authorization not supported for clients running on App Engine a

我在Eclipse中有一个Google AppEngine(Java)项目。我想在Eclipse中调试本地代码,但使用AppEngine上部署的数据库。到目前为止,我使用带有用户名/密码的远程API(旧方法)

此方法将被弃用,我希望使用OAuth,但当我尝试使用它时,它会引发异常:

java.lang.IllegalStateException: OAuth-based authorization not supported for clients running on App Engine
at com.google.appengine.tools.remoteapi.RemoteApiOptions.getOrCreateHttpTransportForOAuth(RemoteApiOptions.java:359)
at com.google.appengine.tools.remoteapi.RemoteApiOptions.useApplicationDefaultCredential(RemoteApiOptions.java:162)
当我在Eclipse中运行一个使用远程api的简单Java客户端应用程序时,一切都很好。但是,如果客户机是Eclipse中的AppEngine开发环境,那么它就不能工作

如何使用appengine数据库调试eclipse中的服务器代码

错误报告:

根据,您需要将appengine remote api.jar${SDK\u ROOT}/lib/appengine remote api.jar添加到WEB-INF/lib目录(或将其添加到Maven依赖项),然后才能工作

更新:事实上,应用程序引擎中的OAuth和远程API似乎还没有实现。我假设在ClientLogin被完全弃用之前,这种情况会发生变化,但现在我建议在上打开一个功能请求


一种可能的解决方法是创建一个常规控制台应用程序,该应用程序连接到远程API(如文档中的示例所示),并可以作为在开发服务器上运行的应用程序引擎应用程序的代理。

这是因为
ApiProxy.getCurrentEnvironment()
返回的值不会是
null
,但是
com.google.appengine.tools.development.LocalHttpRequestEnvironment
对象。对于development server,您现在必须使用旧式(用户名/密码)。

除了我的同事Adam和Nikita之前所说的,我可以正式确认,Google云工程团队决心在截止日期之前为所有受影响的合理用例提供解决方案

据推测,远程API解决方案将在即将发布的1.9.31/32版本中提供,尽管这只是一个假设,目前还没有ETA

作为替代方案,您可以远程使用服务帐户凭据,这可能适合您目前的需要

2016/01/21更新:

该团队已将ClientLogin关闭期限延长至2016年4月12日

2016/04/12更新:


如前所述,修复程序已正确应用,并在最新版本的SDK和gcloud中可用。远程API现在可以与OAuth一起再次用于应用程序到应用程序(或devserver到应用程序)的连接。

但旧式支持将于2016年1月20日结束。所以我的问题是:“除了OAuth或者使用appengine数据库在eclipse中调试服务器代码的任何其他方法之外,还有其他方法吗?”谢谢。不幸的是,添加jar不起作用。你能解释一下你可能的解决方法吗?我可以创建一个常规的控制台应用程序,但它如何作为代理?