首页 > 解决方案 > 我们如何部署 Pharo seaside web 应用程序?

问题描述

我知道在 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 框架的包含许多类的项目怎么办?我对自己的 Seaside 项目重复了相同的过程,但是WARequestContextNotFound当我使用以下命令启动 run.st 脚本时收到消息错误./pharo myapp.image run.st。任何想法?

标签: cloudsmalltalkpharoseasidepharo-5

解决方案


您正在混合使用纯 Zinc 服务器委托和处理 Seaside 应用程序。Zinc 为 Seaside 提供了一个“服务器适配器”,可以使用ZnZincServerAdaptor startOn: 8080(或您选择的任何端口)进行设置。

如果您想运行 Seaside Web 应用程序,您必须部署一个安装了 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'.

推荐阅读