Введение в OpenEdge Mobile: Создаём простейшее мобильное приложение
Сборка и тестирование мобильного приложения
Наше простейшее мобильное приложение теперь готово к тестированию внутри встроенного эмулятора. Мы протестируем его в Developer Studio.
Перейдите на вкладку Servers в PDSOE, и убедитесь в том, что restmgr1 находится в состоянии Started. Если сервер не стартован, щёлкните по нему правой кнопкой мыши и выберите Start. Точно также проверьте состояние сервера restbroker1, и при необходимости стартуйте его.
Перейдите в Project Explorer, щелкните на MyMobileApp, в открывшемся меню выберите Copy Local Source. Дождитесь завершения процесса копирования, после чего еще раз убедитесь в том, что серверы restbroker1 и restmgr1 стартованы и синхронизированы. Если сервер restmgr1 стартован, но имеет состояние Republish, выполните публикацию вручную, для чего щёлкните правой кнопкой мыши на сервере и в меню выберите пункт Publish. Дождитесь завершения процесса.
Чтобы убедиться, что мобильное приложение и сервис были успешно опубликованы, перейдите в каталог C:\Progress\OpenEdge\servers\tomcat\webapps и проверьте наличие в нём каталогов MyMobileApp и MyMobileService, а также файлов MyMobileApp.war и MyMobileService.war. Следующие действия должны быть выполнены только после того, как эти файлы и каталоги будут созданы.
Для старта нашего мобильного приложения выполните следующие шаги:
1. В PDSOE выберите пункт меню Run -> Run Configurations.
2. В открывшемся окне в левой панели выполните двойной щелчок мышью на Progress OpenEdge Mobile.
3. Введите имя новой конфигурации. В меню Project выберите MyMobile. В меню Mobile App выберите MyMobileApp.
4. Выберите радио-кнопку Run on server, и в автоматически подставленной адресной строке замените IP-адрес на корректный адрес (тот, что ранее мы сохраняли в Notepad).
5. Щёлкните по кнопке Run. Как только старт приложения будет завершен, откроется веб-браузер, и мобильное приложение будет стартовано в эмуляторе.
Возможно, что старт приложения может занять несколько минут, так как в это время выполняется его публикация в каталог Tomcat.
Для просмотра приложения на мобильном устройстве, откройте браузер на устройстве и в адресной строке введите URL в следующем формате: http://<ip address>:8980/MyMobileApp
Решение возможных проблем
Если мобильное приложение MyMobileApp не отобразит данные, проверьте следующие возможные источники ошибки.
В Developer Studio
Выберите вкладку Servers:
1. Убедитесь, что restbroker1 работает и синхронизирован. Если нет, проверьте, стартован ли сервер базы данных и restbroker1 подключен к нему.
2. Убедитесь, что restmgr1 содержит мобильный сервис и синхронизирован. Если нет, остановите сервер Tomcat, удалите некоторые артефакты, и перезапустите Tomcat.
- Откройте proenv, введите команду protc stop и нажмите Enter.
- Перейдите в каталоге Progress/OpenEdge/servers/tomcat/webapps в инсталляционном каталоге OpenEdge. В каталоге должны находиться два WAR-файла с именами MyMobileApp и MyMobileService, а также два каталога с такими же именами. Удалите WAR-файлы и каталоги. Если этих четырех артефактов нет в каталоге – удалите то, что есть.
- В proenv введите команду protc start и нажмите Enter.
- Во вкладке Servers щелкните правой кнопкой мыши на restmgr1 и выберите Publish. Потребуется некоторое время для выполнения публикации, следите за индикатором в правом нижнем углу PDSOE.
Примечание: после некоторого количества повторных публикаций, иногда оставшиеся файлы должны быть удалены вручную. Для их удаления используйте команду protc clean после выполнения команды protc stop, а затем команду protc start.
В Mobile App Builder
Перейдите в Mobile App Builder и проверьте следующее:
1. Откройте MyMobileService_dsCustomer_Settings в каталоге Services.
- Проверьте правильность пути в поле catalogURI. Должен быть следующий вид:
http://<your-ip-address>:8980/MyMobileService/static/mobile/MyMobileService.json
Если вы не использовали MyMobileService в качестве имени вашего сервиса, замените MyMobileService на имя вашего сервиса.
- В поле resourceName должны быть название dsCustomer. Если вы не использовали dsCustomer в качестве имени вашей бизнес-сущности, замените dsCustomer на имя вашей бизнес-сущности.
2. Проверьте JavaScript, ассоциированный с событием Load стартовой страницы:
- Первый параметр в вызове pdsession.login должен иметь значение MyMobileService_dsCustomer_Settings.serviceURI. Если имя вашего сервиса не MyMobileService и/или имя вашей бизнес-сущности не dsCustomer, замените их соответствующими именами, использованными вами.
- Первый параметр в вызове pdsession.addCatalog должен быть MyMobileService_dsCustomer_Settings.catalogURI. Если имя вашего сервиса не MyMobileService и/или имя вашей бизнес-сущности не dsCustomer, замените их соответствующими именами, использованными вами.
- Убедитесь, что событие Run JavaScript это первое событие Load, а Invoke Service – второе событие Load по порядку.
Web Browser
Откройте новое окно веб-браузера и проверьте:
1. Следующий URL должен отобразить домашнюю страницу Tomcat:
http://<your-ip-address>:8980
Если страница не открылась, откройте proenv, введите protc start, нажмите Enter.
2. Следующий URL должен показать доступные сервисы:
http://<your-ip-address>:8980/MyMobileService/rest
Если доступных сервисов RESTfull нет, сделайте republish сервиса MyMobileService.
Общее
Убедитесь, что порт 8980 открыт в Windows Firewall.