如何将桌面Java应用程序连接到现有GAE数据存储区?

时间:2013-06-20 01:53:50

标签: java eclipse google-app-engine google-cloud-datastore entities

目前,我在Eclipse中有一个非常基本的桌面Java应用程序,用于将实体添加到Google App Engine上的现有项目的数据存储区。我已经完成了所有设置,但由于我不熟悉使用Google App Engine,因此我不知道如何让应用程序将实体发送到现有项目的数据存储区。

我尝试在线查找,但我发现的大部分内容都是用于制作java网络应用程序。我的目标是让应用程序作为自己的应用程序运行,而不是通过浏览器运行。

那么,我该怎么做才能使应用程序连接到我的GAE数据存储区?是否需要输入一些代码,或者我需要在项目中使用一些xml文件?我刚刚使用Google App Engine的Java Eclipse插件。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

根据你问题的语言,我认为你真的需要一个大图片的答案,而不是任何具体的代码。因此:

您有一个桌面应用程序。这可以在某些台式计算机上运行。

您的Google App Engine应用程序及其数据存储。这在谷歌的数据中心运行。

这些不是同一台计算机。因此,他们必须以某种方式通过网络进行通信 - 这是您正在寻找的缺失部分。

由于GAE是围绕Web应用程序设计的,我建议您将其视为“Web服务”情况 - 也就是说,您的桌面应用程序向您的GAE应用程序发出HTTP请求。 (由于您正在编写客户端和服务器,因此在通用情况下简化了这种情况。)

我建议您阅读有关设计简单Web服务的内容,并做一些适合您应用的内容。


一个重要的警告:除非你的GAE应用程序只有一个用户,否则你必须只写一个通过HTTP访问数据存储的桥,因为那样任何人都可以对其他人的数据进行任意更改。正如多玩家游戏设计所说:不信任客户端 - 也就是说,只接受根据应用程序规则有意义的网络请求,并且不要指望客户端强制执行那些规则。这是因为任何人都可以使用桌面应用程序以外的其他东西向您的GAE应用程序发出请求,因此您必须假设您可以接收任意请求。这是互联网的基本特征。

例如,在用户不使用应用程序互相交互的多用户应用程序的简单情况下,这意味着每个请求(例如更新记录)应该只更新记录属于登录用户,不属于任何其他用户。

答案 1 :(得分:1)

对于将来遇到这个问题的人,我得到了答案。我只是尝试了解项目设置并找到了它。事实证明,在安装了GAE Eclipse插件之后,您可以在Package Explorer中右键单击项目文件夹,转到Google子菜单,然后单击App Engine Settings...

从那里,您需要选中Use Google App Engine复选框,然后在部署部分中,只需填写项目的Application ID。您可以在项目的在线Google应用引擎信息中心的Application Settings标签下找到项目的应用ID。它在那里列为Application Identifier

事实证明,对我来说,我需要找到一个不同的解决方案,因为您无法将GAE与使用Java Swing库的桌面应用程序集成。糟糕:/