我们如何部署Pharo海边网络应用程序?

lud*_*udo 4 cloud smalltalk seaside pharo pharo-5

我知道在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.任何的想法?

ema*_*olo 6

您正在混合使用纯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'.
Run Code Online (Sandbox Code Playgroud)