Я использую несколько модулей с Google AppEngine и задавался вопросом, можно ли запустить сервер разработки (java-версию), чтобы порты, назначенные для разных модулей, всегда были одинаковыми? На данный момент они кажутся случайными. Могу ли я принять решение об этих портах? Я хотел бы иметь возможность установить связь между модулями на устойчивой основе (с точки зрения развития). На данный момент, если у нас есть два модуля, давайте назовем их A и B, и мы хотели бы использовать сервисы, открытые модулем A в модуле B, нет простого способа узнать, какой URL-адрес попадает из модуля B.Модули GAE на сервере разработки
ответ
Хотя modules service может быть полезен в этом сценарии, и я считаю, что это сработает, я решаю проблему немного по-другому.
Я изменил свой скрипт сборки, чтобы запустить все модули на локальном хосте, но на другом порту (по сути, есть несколько локальных экземпляров appengine). Информация о конфигурации (IP: PORT) хранится в файле конфигурации и легко доступна для любого модуля. Для развертывания я все еще упаковываю приложение в архив .
Не думаю, что Google обеспечит легкий подход к этой проблеме. Вам нужно будет использовать the modules service и перенести его на ваш вспомогательный класс, например LinkFactory
, с помощью методов, таких как getLinkToA(String)
и getLinkToB(String)
, и вы их везде, где вы создаете ссылки на модули.
Same (и больше) проблема в том, что вы используете the dispatch file. Это на самом деле большая проблема, потому что части вашего приложения переднего конца могут потерпеть неудачу, поскольку маршрутизация не работает на сервере разработки.
Должен признать свою огромную проблему, когда вещи легко начинаются. –
Можно установить порт каждого модуля с использованием параметров JVM.
-Dcom.google.appengine.devappserver_module.{module_name}.port=8081
Я использую Appengine-Maven-плагин со следующей конфигурацией (мой заказ модуль называется «анализ»):
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<configuration>
<jvmFlags>
<jvmFlag>-Ddatastore.backing_store=${project.basedir}/target/local_db.bin</jvmFlag>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Dcom.google.appengine.devappserver_module.analysis.port=8081</jvmFlag>
<jvmFlag>-XX:MaxPermSize=512m</jvmFlag>
<jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8001,server=y,suspend=n</jvmFlag>
</jvmFlags>
<enhancerApi>JPA</enhancerApi>
<fullScanSeconds>2</fullScanSeconds>
</configuration>
</plugin>
Когда я бегу МВН AppEngine: devserver то журналы, соответствующие этот модуль выглядит следующим образом:
[INFO] INFO: Started [email protected]:8081
[INFO] Jun 10, 2014 10:44:16 AM com.google.appengine.tools.development.JettyContainerService startHotDeployScanner
[INFO] INFO: Full scan of the web app in place every 2s.
[INFO] Jun 10, 2014 10:44:16 AM com.google.appengine.tools.development.AbstractModule startup
[INFO] INFO: Module instance analysis is running at http://localhost:8081/
[INFO] Jun 10, 2014 10:44:16 AM com.google.appengine.tools.development.AbstractModule startup
[INFO] INFO: The admin console is running at http://localhost:8081/_ah/admin
[INFO] Jun 10, 2014 11:44:16 AM com.google.appengine.tools.development.DevAppServerImpl doStart
[INFO] INFO: Dev App Server is now running
Надеюсь, это помогло.
Вы можете установить порт модуля через системное свойство в файле appengine-web.xml
модуля. Например:
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<module>MY_MODULE</module>
<version>v1</version>
<threadsafe>true</threadsafe>
<system-properties>
<property name="com.google.appengine.devappserver_module.MY_MODULE.port"
value="8081"/>
</system-properties>
</appengine-web-app>
- 1. Отказываясь на сервере разработки GAE?
- 2. GAE/Java LocalChannelFailureException на сервере разработки
- 3. Как смонтировать приложение Wicket на/* на сервере разработки GAE?
- 4. SVN на сервере разработки
- 5. Настройка использования AppIdentityService на сервере разработки
- 6. gae.unindexed игнорируется на сервере разработки?
- 7. Subversion на сервере общей разработки
- 8. GAE - Сервер разработки в Eclipse не обновляется?
- 9. Как запустить приложение GAE на частном сервере?
- 10. Импорт Weka в Java на сервере GAE
- 11. GAE - ClassNotFoundException после развертывания на сервере Appspot
- 12. API канала доступа GAE на удаленном сервере
- 13. Как установить модули Perl на ограниченном сервере?
- 14. Пользовательские Perl-модули на сервере Apache2
- 15. Возможно ли создать задание CAE на локальном сервере GAE?
- 16. Модули GAE Java в разработке без постоянной переустановки
- 17. Есть ли способ отключить вызовы Runtime.checkRestricted на сервере разработки GAE Java под Eclipse?
- 18. Маршрутизация работает на сервере разработки и производства
- 19. Зеркальные хранилища на сервере веб-разработки
- 20. usging datastore-indexes.xml на сервере разработки приложений
- 21. Host .svc файл на сервере разработки ASP.NET
- 22. Проблема с Azure на сервере разработки
- 23. Работает ли gzip на сервере разработки?
- 24. Сообщение изображения Blobstore на локальном сервере разработки
- 25. Использование SQLAlchemy на сервере разработки App Engine
- 26. настроить настройку CORS на сервере разработки asp.net
- 27. Развертывание разработки на сервере GoLang, несколько listenAndServes
- 28. Каковы основные вещи на сервере разработки?
- 29. Выключите сельдерей задержку задач на сервере разработки
- 30. htaccess игнорировать часть пути на сервере разработки
Можете ли вы поделиться своими настройками конфигурации? –
Как вам удалось установить разные порты для каждого модуля? – Gapipro
Это не полезный ответ, поскольку он рекомендует подход, совершенно отличный от установленных практик и собственной документации Google. Лучший ответ - это номукаики, так как именно это делают официальные приложения Google. –