0

В настоящее время у меня есть очень основное настольное приложение Java в Eclipse, которое предназначено для добавления объектов в хранилище существующего проекта в Google App Engine. У меня есть все настройки прямо сейчас, но так как я новичок в работе с Google App Engine, я не знаю, как заставить приложение отправлять объекты в хранилище моего существующего проекта.Как подключить приложение Java Desktop к существующему хранилищу данных GAE?

Я пробовал смотреть это онлайн, но большинство из того, что я нашел, было для создания веб-приложений Java. Моя цель - запустить приложение как свое приложение, а не через браузер.

Итак, что мне нужно сделать, чтобы приложение подключилось к моему хранилищу данных GAE? Есть ли какой-нибудь код, который мне нужно ввести, или, возможно, некоторый XML-файл, который мне нужен в проекте? Я просто использую плагин Java Eclipse для Google App Engine.

Спасибо за помощь!

+0

Вы хотите развернуть все ваше приложение на GAE или только на некоторые объекты? – AlvinArulselvan

+0

@AlvinArulselvan Я просто хочу использовать это приложение для отправки и получения данных одного вида из хранилища данных. Текущая база данных используется в приложении iOS, и это настольное приложение предназначено для того, чтобы мои нетехнические участники проекта могли легко добавлять новые данные. – sourdesi

+0

Вы пытались загрузить данные в Datastore? Это версия гостевой книги Python ... Это общий взгляд на datatstore ... https: //developers.google.com/appengine/docs/python/gettingstartedpython27/usingdatastore Perosnally я просто использую Eclipse для развертывания в GAE и запускаю его в Интернете. Затем ваши объекты DAO помещаются в хранилище данных, как показано в гостевой книге – AlvinArulselvan

ответ

1

Основываясь на языке вашего вопроса, я думаю, что вам действительно нужен ответ на большую картинку, а не какой-либо конкретный код. Поэтому:

У вас есть настольное приложение. Это работает на каком-то настольном компьютере.

У вас есть приложение Google App Engine с хранилищем данных. Это выполняется в центрах обработки данных Google.

Это не тот компьютер. Следовательно, они должны общаться по сети в некотором роде - это недостающая деталь, которую вы ищете.

Поскольку GAE разработан для создания веб-приложений, я рекомендую вам подумать об этом как о ситуации «веб-службы», то есть ваше настольное приложение отправляет HTTP-запросы вашему приложению GAE. (Ситуация упрощена в случае общего дела, потому что вы пишете как клиент, так и сервер.)

Я рекомендую вам прочитать о проектировании простых веб-сервисов и делать все, что подойдет вашему приложению.


Одно важное предупреждение: Если ваше приложение GAE только когда-либо не имеет один пользователь, вы должны не просто написать мост, который дает доступ к хранилищу данных через HTTP, потому что тогда каждый может внести любые изменения в чужие данные. Как сказано для многопользовательской игры: не доверяет клиенту, т. Е. Принимает только сетевые запросы, которые имеют смысл в соответствии с правилами вашего приложения, и не ожидайте, что клиент выполнит эти правила. Это связано с тем, что каждый может делать запросы к вашему приложению GAE, используя что-то, отличное от вашего настольного приложения, поэтому вы должны предположить, что можете получать произвольные запросы. Это фундаментальный характер Интернета.

Например, в простом случае многопользовательского приложения, пользователи которого не взаимодействуют друг с другом с помощью приложения, это означает, что каждый запрос, который, скажем, обновляет запись, должен обновлять только запись , которая принадлежит к зарегистрированному пользователю, а не к любому другому пользователю.

+0

Wow спасибо за отличную информацию, я очень ценю это! Однако у меня есть вопрос. Не пытайтесь ли я использовать HTTP-запросы для взаимодействия с хранилищем данных в моем проекте? Могу ли я использовать плагин eclipse java для этого? Если могу, что я могу сделать, чтобы указать, какой файл данных проекта я хочу загрузить объекты объекта? – sourdesi

+0

Нет, вам не нужно использовать HTTP, но вам нужно использовать какой-то сетевой протокол в своем приложении, и насколько я знаю, HTTP является самым простым в использовании из GAE. Конечно, вы можете использовать библиотеку Java для создания веб-службы (и клиента) без непосредственного написания кода обработки HTTP. Но «плагин eclipse java», независимо от того, что это такое, не имеет значения - это то, что вы используете *, чтобы помочь написать вашу программу *, а не часть вашей программы. –

+0

Извините Если в моих комментариях не было ясно, но я был «плагином eclipse java», я имел в виду официальную библиотеку eclipse для GAE, поэтому я считаю, что это будет фактическая часть программы. Если вы использовали это раньше, есть ли какая-то процедура, которую я должен использовать, чтобы указать проект GAE, который я уже создал на серверах GAE? – sourdesi

1

Для тех, кто получает эту проблему в будущем, я получил ответ на это. Я просто попытался экспериментировать с настройками проекта и нашел его.Итак, после того, как вы установили плагин GAE Eclipse, вы можете просто щелкнуть правой кнопкой мыши папку своего проекта в Package Explorer, перейдите в подменю Google, затем нажмите App Engine Settings....

Оттуда вы должны установить галочку Use Google App Engine, а затем в разделе развертывания просто заполните Application ID вашего проекта. Идентификатор приложения вашего проекта можно найти на вкладке Application Settings интерактивной панели инструментов Google для вашего проекта. Он указан там как ваш Application Identifier.

Оказывается, для меня мне нужно найти другое решение, так как вы не можете интегрировать GAE с настольным приложением, использующим библиотеку Java Swing. Bummer:/

Смежные вопросы