我正在尝试在 GNU Smalltalk 中使用 Seaside 创建一个应用程序。我在 Linux (Fedora 17) 下运行 GNU Smalltalk 3.2.5。
我已经很好地运行并执行了简单的计数器测试应用程序。在我的应用程序中,我需要动态创建一些类并使用它们。但是,gst-remote
不会认出他们。这是我的测试应用程序(的内容test.st
):
Seaside.WAComponent subclass: Test [
| foo |
Test class >> canBeRoot [ ^true ]
initialize [
super initialize.
Object subclass: #Foo instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'test class'.
foo := Foo new.
]
states [ ^{ self } ]
renderContentOn: html [
html heading: 'Foo'.
]
]
Test registerAsApplication: 'test'
在“服务器”端,我运行远程服务器:
$ gst-remote -I seaside.im --server --start=Seaside
gst-remote server started.
在应用程序端(实际上是在同一台 PC 上,只是不同的终端窗口),我运行以下命令并显示错误:
$ gst-remote -f test.st
gst-remote: error at line 330: Undefined variable 'Foo' referenced.
我不明白为什么Foo
未定义。从gst
交互式会话中,它可以正常工作:
st> Object subclass: #Foo instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'test class'.
Foo
st> foo := Foo new.
a Foo
为什么gst-remote
不允许这样做?