[Glass] Newbie on GLASS - Hello world fail
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Tue Sep 22 09:59:47 PDT 2015
Ziggy,
I've added a feature request for this[1] ... sounds like a good addition.
Dale
[1] https://github.com/GsDevKit/Seaside31/issues/79
On 09/22/2015 06:00 AM, Mariano Martinez Peck via Glass wrote:
> Thanks Ezequiel!
>
> On Tue, Sep 22, 2015 at 7:35 AM, Ezequiel Tolnay <etolnay at gmail.com
> <mailto:etolnay at gmail.com>> wrote:
>
> Hi Mariano,
>
> The -a (low caps) was a typo, oops!
>
> Until I get the hang of the smalltallkers lingo, any instructions
> I write will be confusing!
>
> 1. Zinc
> * edit *WAServerAdaptor class>>startOn:*
>
> I probably shouldn't have said edit. Copy the method
> *WAServerAdaptor class>>startOn:*, and add to it the following
> extra parameter:
>
> * add new parameter bindingAddressOn: aBindingAddress
> * add the following line before the last line (adaptor
> start):
> o adaptor server bindingAddress: aBindingAddress.
> * save (the adaptor must set its bindingAddress prior to
> starting, and this method creates it and immediately
> starts it, so it must be configured either here or as
> part of the adaptor creation or initialisation)
> * edit *WAGemStoneRunSeasideGems>>startOn:*
> * add the following at the end as a second parameter to
> self adaptorClass
> o bindingAddressOn: '127.0.0.1'
> * save
> * tode /home/seaside/webServer --restart
>
>
>
> The code is small enough, I reckon it is easier to just write it
> here haha!
>
> New method *WAServerAdaptor class>>*startOn: portInteger
> bindingAddressOn: aBindingAddress
> "Convenience method to start a single adaptor on the specified
> port. If an existing
> adaptor of this type is already registered, it will be restarted
> on the specified port."
>
> | adaptor |
> adaptor := self default.
> adaptor isNil
> ifFalse: [
> adaptor
> stop;
> port: portInteger ]
> ifTrue: [ adaptor := self port: portInteger ].
> adaptor server bindingAddress: aBindingAddress.
> adaptor start
>
> Update *WAGemStoneRunSeasideGems>>*startOn: port
> self adaptorClass startOn: port bindingAddressOn: '127.0.0.1'
>
> Cheers!
>
> Ziggy
>
> On 22 September 2015 at 11:54, Mariano Martinez Peck
> <marianopeck at gmail.com <mailto:marianopeck at gmail.com>> wrote:
>
> Hi Ezequiel,
>
> Quick question and then I answer inline. ..Just to know how
> much I should test this...did you really test it? I mean, with
> and without the changes and trying to access from outside
> localhost?
>
> On Mon, Sep 21, 2015 at 1:43 PM, Ezequiel Tolnay
> <etolnay at gmail.com <mailto:etolnay at gmail.com>> wrote:
>
> Limiting access to localhost:
>
> 1. GemStone:
> * add the following to
> $GS_HOME/gemstone/stones/devKit/extents/system.conf
> o STN_LISTENING_ADDRESSES = "::1";
>
>
> Cool, easy.
>
> 1. NetLDI:
> * trickier, I couldn't manage to get the parameter
> injected by the caller, so I replace the binary
> with a script that injects -A ::1 before all other
> parameters, as follows:
> * sudo
> mv $GS_HOME/gemstone/products/GemStone64Bit3.2.8.1-x86_64.Linux/bin/startnetldi{,_bin}
> * sudo sh -c "echo -e '#\x21/bin/bash\n\${0}_bin -a
> ::1 \$*' >
> $GS_HOME/gemstone/products/GemStone64Bit3.2.8.1-x86_64.
>
>
> For me it easy because I start netldi with my custom scripts.
> BTW... note that the argument is "-A" (uppercase), not "-a" as
> you show above because that's another argument (" all
> processes started by the netldi will belong to this
> account."). I guess it was an email writing problem and you
> were using -A instead ?
>
> * Linux/bin/startnetldi"
> * sudo chmod
> +x $GS_HOME/gemstone/products/GemStone64Bit3.2.8.1-x86_64.Linux/bin/startnetldi
> 1. Zinc
> * edit *WAServerAdaptor class>>startOn:*
> * add new parameter bindingAddressOn: aBindingAddress
> * add the following line before the last line
> (adaptor start):
> o adaptor server bindingAddress: aBindingAddress.
> * save (the adaptor must set its bindingAddress
> prior to starting, and this method creates it and
> immediately starts it, so it must be configured
> either here or as part of the adaptor creation or
> initialisation)
> * edit *WAGemStoneRunSeasideGems>>startOn:*
> * add the following at the end as a second parameter
> to self adaptorClass
> o bindingAddressOn: '127.0.0.1'
> * save
> * tode /home/seaside/webServer --restart
>
>
>
>
> mmmmm I don't have any #bindingAddressOn: method defined
> anywhere. Maybe it's because of the version of Seaside I am
> using. Could you please share with me which class implements
> such a method and which is the source code of such method ?
>
> Thanks in advance,
> *
> *
>
> Cheers!
>
> Ziggy
>
> On 22 September 2015 at 02:14, Mariano Martinez Peck
> <marianopeck at gmail.com <mailto:marianopeck at gmail.com>> wrote:
>
> Cool!!!
> Let me know did you do the zinc thingy to only bind
> localhost ;) I would also like to have netldi and
> Zinc only accepting from localhost!
>
> On Mon, Sep 21, 2015 at 1:12 PM, Ezequiel Tolnay
> <etolnay at gmail.com <mailto:etolnay at gmail.com>> wrote:
>
> Good news, I reinstalled the whole thing again
> from scratch (the latest version in the dev
> branch) and now it is working!
>
> From Hello World to a full featured website will
> be a steep uphill, but I finally have a working
> environment! Stoked :)
>
> Cheers!
>
> Ziggy
>
> On 21 September 2015 at 22:03, Ezequiel Tolnay
> <etolnay at gmail.com <mailto:etolnay at gmail.com>> wrote:
>
> Hi Mariano,
>
> Thanks for the feedback!
>
> I don't know which version of seaside gets
> installed, 3.1x apparently. After running
> "./installServer devKit 3.2.8.1" from a copy
> of the dev branch of the tODE devKit, as per
> Dale's instructions, I mounted Seaside in
> tODE, installed, and registered it as follows:
>
> * mount
> @/sys/stone/dirs/gsDevKitHome/projects/seaside31
> /home seaside
> * /home/seaside/install
> * cd /home/seaside
> * ./webServer --register=zinc --port=8383
> * ./webServer --start
>
> The stack at the error (continuation from the
> object log) is the following (the error is in
> the 15th position):
>
> aTDDebugger
> --------------------
> 1.
> WAGemStoneProductionErrorHandler(WAErrorHandler)>>saveExceptionContinuation:
> @10 line 7
> 2.
> WAGemStoneProductionErrorHandler>>handleDefault:
> @2 line 3
> 3.
> WAGemStoneProductionErrorHandler(WAErrorHandler)>>handleError:
> @2 line 2
> 4.
> WAGemStoneProductionErrorHandler(WAErrorHandler)>>handleGemStoneException:
> @4 line 4
> 5.
> WAGemStoneProductionErrorHandler(WAHtmlHaltAndErrorHandler)>>handleException:
> @2 line 2
> 6. [] in
> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
> @2 line 5
> 7.
> WAGemStoneProductionErrorHandler(ExecBlock)>>on:do:
> @3 line 42
> 8. [] in
> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
> @2 line 8
> 9. [] in ExecBlock>>on:do: @4 line 49
> 10.
> MessageNotUnderstood(AbstractException)>>_executeHandler:
> @3 line 8
> 11.
> MessageNotUnderstood(AbstractException)>>_signalWith:
> @1 line 1
> 12.
> MessageNotUnderstood(AbstractException)>>signal @2
> line 47
> 13. Symbol(Object)>>doesNotUnderstand: @9 line 10
> 14.
> Symbol(Object)>>_doesNotUnderstand:args:envId:reason:
> @7 line 12
> *15. [] in
> WAInitialRenderLoopContinuation>>createRoot @3
> line 3*
> 16. GRSmallDictionary>>at:ifAbsent: @8 line 8
> 17.
> WAGemStoneRequestContext(WARequestContext)>>rootComponentIfAbsent:
> @3 line 3
> 18.
> WAInitialRenderLoopContinuation>>createRoot @3
> line 3
> 19.
> WAInitialRenderLoopContinuation>>basicPerformAction
> @2 line 3
> 20. [] in
> WAInitialRenderLoopContinuation(WAActionPhaseContinuation)>>performAction
> @2 line 2
> 21.
> WAInitialRenderLoopContinuation(ExecBlock)>>onException:do:
> @2 line 66
> 22.
> WAInitialRenderLoopContinuation(ExecBlock)>>on:do:
> @5 line 47
> 23.
> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
> @2 line 3
> 24. [] in
> ExecBlock(WARenderLoopContinuation)>>withNotificationHandlerDo:
> @2 line 20
> 25. ExecBlock>>on:do: @3 line 42
> 26.
> WAInitialRenderLoopContinuation(WARenderLoopContinuation)>>withNotificationHandlerDo:
> @8 line 21
> 27.
> WAInitialRenderLoopContinuation(WAActionPhaseContinuation)>>performAction
> @2 line 2
> 28.
> WAInitialRenderLoopContinuation(WAActionPhaseContinuation)>>handleFiltered:
> @2 line 2
> 29. [] in
> WAInitialRenderLoopContinuation(WARequestHandler)>>handle:
> @3 line 4
> 30.
> WAInitialRenderLoopContinuation(ExecBlock)>>on:do:
> @3 line 42
> 31. WACurrentRequestContext
> class(WADynamicVariable class)>>use:during: @2
> line 4
> 32. [] in
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @2 line 5
> 33.
> WAGemStoneRequestContext(ExecBlock)>>ensure:
> @2 line 12
> 34.
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @3 line 6
> 35.
> WAInitialRenderLoopContinuation(WARequestHandler)>>handle:
> @2 line 4
> 36. [] in
> WAInitialRenderLoopContinuation(WASessionContinuation)>>handle:
> @2 line 5
> 37.
> WAInitialRenderLoopContinuation(ExecBlock)>>on:do:
> @3 line 42
> 38.
> WAInitialRenderLoopContinuation(WASessionContinuation)>>withUnregisteredHandlerDo:
> @2 line 3
> 39.
> WAInitialRenderLoopContinuation(WASessionContinuation)>>handle:
> @4 line 5
> 40. WASession>>start @6 line 2
> 41. [] in WASession>>handleFiltered: @2 line 15
> 42. WAMergedRequestFields>>at:ifAbsent: @3 line 6
> 43. WASession>>handleFiltered: @16 line 14
> 44. [] in WASession(WARequestHandler)>>handle:
> @3 line 4
> 45. WASession(ExecBlock)>>on:do: @3 line 42
> 46. WACurrentRequestContext
> class(WADynamicVariable class)>>use:during: @2
> line 4
> 47. [] in
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @2 line 5
> 48.
> WAGemStoneRequestContext(ExecBlock)>>ensure:
> @2 line 12
> 49.
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @3 line 6
> 50. WASession(WARequestHandler)>>handle: @2 line 4
> 51. WASession>>handle: @10 line 11
> 52.
> WAApplication(WARegistry)>>dispatch:to:key: @4
> line 6
> 53.
> WAApplication(WARegistry)>>handle:registering:
> @4 line 7
> 54. WAApplication>>handleDefault: @3 line 2
> 55. WAApplication(WARegistry)>>handleFiltered:
> @7 line 6
> 56. WAApplication>>handleFiltered: @10 line 8
> 57.
> WAExceptionFilter(WARequestFilter)>>handleFiltered:
> @3 line 4
> 58. [] in WAExceptionFilter>>handleFiltered:
> @2 line 7
> 59. WAExceptionFilter(ExecBlock)>>on:do: @3
> line 42
> 60. WACurrentExceptionHandler
> class(WADynamicVariable class)>>use:during: @2
> line 4
> 61. [] in WAExceptionFilter>>handleFiltered:
> @2 line 6
> 62.
> WAExceptionFilter(ExecBlock)>>onException:do:
> @2 line 66
> 63. WAExceptionFilter(ExecBlock)>>on:do: @5
> line 47
> 64.
> WAGemStoneProductionErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
> @2 line 3
> 65. WAExceptionFilter>>handleFiltered: @5 line 4
> 66. [] in
> WAApplication(WARequestHandler)>>handle: @3 line 4
> 67. WAApplication(ExecBlock)>>on:do: @3 line 42
> 68. WACurrentRequestContext
> class(WADynamicVariable class)>>use:during: @2
> line 4
> 69. [] in
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @2 line 5
> 70.
> WAGemStoneRequestContext(ExecBlock)>>ensure:
> @2 line 12
> 71.
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @3 line 6
> 72. WAApplication(WARequestHandler)>>handle:
> @2 line 4
> 73. WADispatcher>>handleFiltered:named: @3 line 5
> 74. WADispatcher>>handleFiltered: @8 line 6
> 75. [] in
> WADispatcher(WARequestHandler)>>handle: @3 line 4
> 76. WADispatcher(ExecBlock)>>on:do: @3 line 42
> 77. WACurrentRequestContext
> class(WADynamicVariable class)>>use:during: @2
> line 4
> 78. [] in
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @2 line 5
> 79.
> WAGemStoneRequestContext(ExecBlock)>>ensure:
> @2 line 12
> 80.
> WAGemStoneRequestContext(WARequestContext)>>push:during:
> @3 line 6
> 81. WADispatcher(WARequestHandler)>>handle: @2
> line 4
> 82. [] in
> WAGsZincAdaptor(WAServerAdaptor)>>handleRequest:
> @3 line 4
> 83. WAGsZincAdaptor(ExecBlock)>>on:do: @3 line 42
> 84.
> WAGsZincAdaptor(WAServerAdaptor)>>handleRequest:
> @2 line 5
> 85. WAGsZincAdaptor(WAServerAdaptor)>>handle:
> @2 line 4
> 86. [] in
> WAGsZincAdaptor(WAServerAdaptor)>>process: @2
> line 6
> 87. WAGsZincAdaptor(ExecBlock)>>ensure: @2 line 12
> 88. WAGsZincAdaptor(WAServerAdaptor)>>process:
> @4 line 7
> 89. [] in WAGsZincAdaptor>>process: @2 line 6
> 90. [] in
> GRGemStonePlatform>>seasideProcessRequestWithRetry:resultBlock:
> @2 line 12
> 91. GRGemStonePlatform(ExecBlock)>>on:do: @3
> line 42
> 92. [] in
> GRGemStonePlatform>>seasideProcessRequestWithRetry:resultBlock:
> @11 line 13
> 93. GRGemStonePlatform(ExecBlock)>>ensure: @2
> line 12
> 94. TransientRecursionLock>>critical: @11 line 12
> 95.
> GRGemStonePlatform>>seasideProcessRequestWithRetry:resultBlock:
> @3 line 6
> 96. [] in
> GRGemStonePlatform>>seasideProcessRequest:adaptor:resultBlock:
> @2 line 6
> 97. Array(Collection)>>do: @5 line 10
> 98. [] in
> GRGemStonePlatform>>seasideProcessRequest:adaptor:resultBlock:
> @3 line 5
> 99. GRGemStonePlatform(ExecBlock)>>on:do: @3
> line 42
> 100.
> GRGemStonePlatform>>seasideProcessRequest:adaptor:resultBlock:
> @2 line 12
> 101. WAGsZincAdaptor>>process: @3 line 4
> 102.
> ZnSeasideServerAdaptorDelegate>>handleRequest:
> @3 line 4
> 103. [] in
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateAndDelegateRequest:
> @7 line 12
> 104.
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateRequest:do:
> @4 line 6
> 105.
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>authenticateAndDelegateRequest:
> @2 line 8
> 106. [] in
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequestProtected:
> @2 line 5
> 107.
> ZnManagingMultiThreadedServer(ExecBlock)>>on:do:
> @3 line 42
> 108.
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequestProtected:
> @2 line 6
> 109.
> ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>handleRequest:
> @5 line 9
> 110. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeOneRequestResponseOn:
> @2 line 11
> 111.
> ZnManagingMultiThreadedServer(ExecBlock)>>on:do:
> @3 line 42
> 112.
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeOneRequestResponseOn:
> @6 line 15
> 113. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
> @2 line 10
> 114. [] in ZnCurrentServer
> class(DynamicVariable class)>>value:during: @3
> line 9
> 115. ZnCurrentServer class(ExecBlock)>>ensure:
> @2 line 12
> 116. ZnCurrentServer class(DynamicVariable
> class)>>value:during: @6 line 10
> 117. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
> @4 line 9
> 118.
> ZnManagingMultiThreadedServer(ExecBlock)>>on:do:
> @3 line 42
> 119.
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>executeRequestResponseLoopOn:
> @4 line 11
> 120. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> @2 line 17
> 121.
> ZnManagingMultiThreadedServer(ExecBlock)>>on:do:
> @3 line 42
> 122. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> @2 line 18
> 123.
> ZnManagingMultiThreadedServer(ExecBlock)>>ensure:
> @2 line 12
> 124. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> @2 line 20
> 125. [] in ExecBlock>>ifCurtailed: @2 line 6
> 126. ExecBlock>>ensure: @2 line 12
> 127.
> ZnManagingMultiThreadedServer(ExecBlock)>>ifCurtailed:
> @3 line 8
> 128. [] in
> ZnManagingMultiThreadedServer(ZnMultiThreadedServer)>>serveConnectionsOn:
> @2 line 23
> 129. GsProcess>>_start @7 line 16
> 130. GsNMethod class>>_gsReturnToC @1 line 1
>
> About NetLDI port, I found what the problem
> is. gs64ldi is the default ldi service name
> and port, but in devKit the ldi is called
> devKit_ldi. I added a devKit_ldi to
> /etc/services and now it works well.
>
> According to
> $GS_HOME/projects/seaside31/install.ston, it
> looks like it is installing seaside3.1.3.1.
>
> I found I don't have a ConfigurationOfSeaside
> defined. I searched online and found this and
> run it to test it:
>
> Gofer new
> squeaksource: 'MetacelloRepository';
> package: 'ConfigurationOfSeaside';
> load.
>
>
> ConfigurationOfSeaside now is there,
> "ConfigurationOfSeaside project" works well,
> but "ConfigurationOfSeaside project
> latestVersion" crashes (name not found: Pier
> tests):
> aTDDebugger
> --------------------
> 1.
> UserDefinedError(AbstractException)>>_signalWith:
> @5 line 25
> 2. UserDefinedError(AbstractException)>>signal
> @2 line 47
> 3. MetacelloMCVersionSpec(Object)>>error: @6
> line 7
> *4. [] in
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpec:forLoad:forMap:packages:
> @3 line 7*
> 5. [] in
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>packageNamed:forLoad:forMap:ifAbsent:
> @33 line 35
> 6. Dictionary>>at:ifAbsent: @7 line 10
> 7.
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>packageNamed:forLoad:forMap:ifAbsent:
> @2 line 9
> 8.
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpec:forLoad:forMap:packages:
> @2 line 4
> 9. [] in
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpecs:forLoad:map:
> @2 line 12
> 10. [] in ExecBlock1(Set)>>do: @2 line 11
> 11. [] in
> ExecBlock2(KeyValueDictionary)>>keysDo: @2 line 7
> 12. KeyValueDictionary>>keysAndValuesDo: @18
> line 15
> 13. KeyValueDictionary>>keysDo: @2 line 6
> 14. Set>>do: @3 line 11
> 15.
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpecs:forLoad:map:
> @13 line 10
> 16.
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>resolveToLoadableSpecs:
> @4 line 12
> 17. [] in
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>expandToLoadableSpecNames:
> @2 line 9
> 18. [] in
> ExecBlock1(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing:
> @13 line 14
> 19. [] in
> ExecBlock0(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary:
> @2 line 9
> 20. ExecBlock0(ExecBlock)>>on:do: @3 line 42
> 21.
> MetacelloGemStonePlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary:
> @9 line 10
> 22.
> MetacelloGemStonePlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing:
> @2 line 4
> 23.
> MetacelloGemStonePlatform(MetacelloPlatform)>>stackCacheFor:at:doing:
> @2 line 3
> 24.
> MetacelloMCVersionSpec(MetacelloVersionSpec)>>expandToLoadableSpecNames:
> @6 line 6
> 25.
> MetacelloMCVersionSpec>>computeVersionStatus:
> @2 line 2
> 26. MetacelloMCVersion>>computeVersionStatus
> @3 line 9
> 27.
> MetacelloMCVersion(MetacelloVersion)>>versionStatus
> @3 line 3
> 28.
> MetacelloMCVersion(MetacelloVersion)>>printOn:
> @6 line 5
> 29. MetacelloMCVersion(Object)>>printString @6
> line 14
> 30.
> TDWorkspaceClientElementBuilder(TDClientSourceElementBuilder)>>printItMenuAction:selectedText:
> @5 line 7
> 31.
> TDWorkspaceClientElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg:
> @12 line 10
> 32. [] in
> TDWorkspaceClientElementBuilder(TDClientSourceElementBuilder)>>menuActionBlock
> @6 line 8
> 33.
> TDWorkspaceClientElementBuilder(ExecBlock)>>value:value:value:value:value:
> @2 line 11
> 34. GsNMethod class>>_gsReturnToC @1 line 1
>
> Cheers!
>
> Ziggy
>
> On 21 September 2015 at 00:13, Mariano
> Martinez Peck <marianopeck at gmail.com
> <mailto:marianopeck at gmail.com>> wrote:
>
>
>
> On Sun, Sep 20, 2015 at 9:48 AM, Ezequiel
> Tolnay via Glass
> <glass at lists.gemtalksystems.com
> <mailto:glass at lists.gemtalksystems.com>>
> wrote:
>
> Hi all!
>
> I've installed the DevKit [dev branch,
> thanks Dale for your guidence so far]
> in both my server (Debian Wheezy) and
> my desktop (OSX), and connect via SSH
> port forwarding. The seaside gem is
> now working, the "counter" examples
> work well, and I tested introducing a
> divide by zero error to debug via
> continuation and all went well there.
> So far so good (with a few hiccups
> that I managed to resolve on the way).
>
> I'm now attempting the same Seaside
> tutorial that I did a while ago on
> Pharo (boquitas). I'm stuck now in the
> simplest Hello World. I get an error
> in
> *WAInitialRenderLoopContinuation>>createRoot*:
>
>
> /(error 2010), a Symbol does not
> understand #'new'"./
>
> In the freshly installed devKit, the
> error raises by doing the following:
>
> 1. In tODE workspace:
> * WAComponent subclass:
> #HelloWorld
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: 'GLASS'.
> 2. Browse to HelloWorld in tODE, and
> add for it a new protocol called
> "test" (without protocols, adding
> a new method fails, is this a bug?).
> 3. Add new method:
> * renderContentOn: html
> html heading: 'Hello
> world!'.
> 4. Register the class running this in
> the tODE workspace:
> * WAAdmin register:
> HelloWorld asApplicationAt:
> 'hello'.
> 5. Open seaside on the Internet
> browser (http://localhost:8383),
> "hello" application is there.
> 6. Click on "hello" raises a "does
> not understand #new" error.
>
>
> You may want to copy the stack of the
> error? (CMD+Shift+P from the tODE debugger
> will open the stack in a printable way so
> that you can copy paste) Also..which
> version of Seaside did you install?
>
> A couple more questions:
>
> 1. after installing via
> "./installServer devKit 3.2.8.1"
> netLDI listens in different random
> ports each time it starts. How do
> I get it to listen on the one in
> the default gs64ldi port 50377
> always instead?
>
>
> I am not sure if the script startNetldi
> allows you to do that. But, what I can
> tell you for sure is that dealing directly
> to netldi, DOES allow you to choose ports.
> For example, this is how I start netldi in
> my scripts:
>
> GEMSTONE_USER -n -P $NETLDI_PORT -p`expr
> $NETLDI_PORT + 1`:`expr $NETLDI_PORT + 2`
> -l
> $APPLICATION_LOG_DIR/netldi$APPLICATION_NAME.log
> netldi$APPLICATION_NAME >
> $GEMSTONE_LOGDIR/netldiStartup.log 2>&1'
> Note the arguments -P and -p .. so you
> maybe need to have you custom script to
> start/stop netldi (based on startNetldi
> script)
> https://github.com/GsDevKit/gsDevKitHome/blob/master/bin/startNetldi
>
> Or you can convince Dale to add some
> arguments to #startNetldi :)
>
> 1. I managed to get GemStone and
> netLDI to listen in localhost
>
>
> Uhhhh this is a very good idea!!! This is
> for security reasons right?
>
> 1. only via the config option
> "STN_LISTENING_ADDRESSES = "::1";"
> on
> $GS_HOME/gemstone/stones/devKit/extents/system.conf,
> but couldn't figure out how to
> configure zinc to listen only on
> localhost. I modified
> *WAGemStoneRunSeasideGems>>startOn:*
> to "/self adaptorClass startOn:
> port bindingAddressOn:
> '127.0.0.1'/", and created
> *WAServerAdaptor
> class>>startOn:bindingAddressOn:*
> as a copy of *>>startOn:*, but
> with "/adaptor server
> bindingAddress: aBindingAddress./"
> right before "adaptor start". Is
> there a more appropriate way to do
> this?
>
>
> Good idea. Which kind of socket address
> object are you instantiating and how do
> you get an instance out of a string like
> 'localhost'?
>
> 1. The standard Seaside landing page
> on this installation goes straight
> to the "browse" page, and does not
> include several of the examples
> that I remember from the default
> Seaside installation in Pharo,
> like the ones that use make use of
> JQuery. Is this expected in
> Gemstone's version or is
> indicative of a partial/failed
> install?
>
>
> This is very likely because you installed
> a newer Seaside version whose
> "ConfigurationOfSeaside" brings different
> packages by default than what it used to
> load default. You should simply install
> the packages/groups you want (like jQuery
> for example) that are not in the default
> load.
>
> For example, this is what I load:
>
> #('Core' 'Zinc-Seaside' 'Javascript'
> 'JQuery' 'JSON' 'FastCGI' 'Email')
>
> 1.
>
>
> Thanks!
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> <mailto:Glass at lists.gemtalksystems.com>
> http://lists.gemtalksystems.com/mailman/listinfo/glass
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20150922/9cdbf70a/attachment-0001.html>
More information about the Glass
mailing list