Как мы развернем веб-приложение Pharo у моря?
Я знаю, что в книге Entreprise Pharo есть хорошее объяснение для развертывания продукции на сервере Linux. Я следовал за учебником и смог развернуть тот же проект. Однако проект содержал только простой класс MyFirstWebApp и не включал инфраструктуру Seaside. Сценарий запуска был следующим:
ZnServer defaultOn: 8080.
ZnServer default logToStandardOutput.
ZnServer default delegate
map: 'image'
to: MyFirstWebApp new;
map: 'redirect-to-image'
to: [ :request | ZnResponse redirect: 'image' ];
map: '/'
to: 'redirect-to-image'.
ZnServer default start
,
А что если у вас есть проект с множеством классов, использующий Seaside framework? Я повторил ту же процедуру для моего собственного проекта Seaside, но я получил сообщение об ошибке WARequestContextNotFound
когда я запускаю скрипт run.st с помощью следующей команды ./pharo myapp.image run.st
, Любая идея?
1 ответ
Вы смешиваете использование чисто делегатов Zinc Server с обработкой Приморских приложений. Zinc предоставляет "серверный адаптер" для Seaside, который можно настроить с помощью ZnZincServerAdaptor startOn: 8080
(или любой порт на ваш выбор).
Если вы хотите запустить веб-приложение Seaside, вы должны развернуть образ с установленной в нем инфраструктурой Seaside вместе со своими собственными классами (MyFirstWebApp
и друзья).
Так что ваши run.st
будет выглядеть больше как:
ZnZincServerAdaptor startOn: 8080.
ZnZincServerAdaptor default server debugMode: true.
ZnServer default logToStandardOutput.
"Here you register the Seaside application _class_"
(WAAdmin register: MyFirstWebApp asApplicationAt: 'image')
preferenceAt: #serverPath put: '/'.
WAAdmin defaultDispatcher defaultName: 'image'.