Как мы развернем веб-приложение 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'.
Другие вопросы по тегам