[Seaside] VW cgi interface

Brett Taylor brett.taylor at healthauditors.com
Sun Mar 21 02:22:43 CET 2004


David,
First of all - thanks for the port.  Seaside is great, and it sure is
nice to be able to work in my favorite Smalltalk(VW).    No one on the
Seaside list seems to care about VW though.  

I haven't yet been able to get this going with the Perl CGI i/f.  I just
finished my first Seaside/VW application using the WaveHTTPRequestBroker
and intend to work on making the CGI i/f this week.  As I tear into it,
I may ask you some questions.  

I've found some areas that weren't implemented such as being able to
send  "Forms" (Gif Images) out using the HtmlRender.  I've made this
work in my image.  Should I publish the changes to the public
reposistory?

Also, I've seen walkbacks that might have to do with finalization.  I'm
getting DNU's sent to the Smallinteger 0.  I've been ignoring it during
development but I'm going to have to get that fixed before deployment. 
Have you noticed anything like this?   

I hope to have deploy by the end of the next week.  I hope you don't
mind me firing off a few questions your way.
Thanks,
Brett Taylor

 On Sat, 2004-03-20 at 13:44, David Pennell wrote:
> Brett Taylor wrote:
> 
> >Has anyone successfully used Seaside or Visualworks 7.2 with Apache and
> >the CGI i/f (WaveIPRequestBroker)?  I'm encountering walkbacks in the
> >method SeasideServlet>>doGet:response:. Seaside works fine for me using
> >the WaveHTTPRequestBroker in VW. 
> >  
> >
> Brett - did you ever get an answer to this?  I'm currently the VW port 
> maintainer, but I haven't been following this list as closely as I 
> should.  I haven't tried the combination you describe.
> 
> >Thanks,
> >Brett Taylor
> >
> >Stack Trace follows:
> >
> >Unhandled exception: BlockClosure [] in Object>>doesNotUnderstand:
> >ISO8859L1String(Object)>>doesNotUnderstand:
> >Seaside.SeasideServlet>>doGet:response:
> >Seaside.SeasideServlet(VisualWave.HttpServlet)>>service:response:
> >VisualWave.ServletHandler>>basicEvaluate
> >optimized [] in VisualWave.WWHandler>>evaluate
> >BlockClosure>>on:do:
> >VisualWave.ServletHandler(VisualWave.WWHandler)>>evaluate
> >VisualWave.ServletHandler>>sendEntityOver:
> >VisualWave.ServletHandler(VisualWave.WWHandler)>>sendCGIOver:for:
> >optimized [] in VisualWave.WebRequest>>answerWith:
> >BlockClosure>>on:do:
> >VisualWave.WebRequest>>answerWith:
> >VisualWave.WebRequestService>>privateDispatchRequest:
> >VisualWave.WebRequestService>>dispatchRequest:
> >VisualWave.WebRequestService>>privateServe:
> >optimized [] in VisualWave.WebRequestService>>serveMarshaller:
> >BlockClosure>>on:do:
> >VisualWave.WebRequestService>>serveMarshaller:
> >VisualWave.WaveMarshaler>>handleIncomingMessageOn:
> >optimized [] in [] in VisualWave.WaveTransport>>handlingIncomingMessage
> >BlockClosure>>ensure:
> >optimized [] in VisualWave.WaveTransport>>handlingIncomingMessage
> >BlockClosure>>on:do:
> >VisualWave.WaveTransport>>handlingIncomingMessage
> >VisualWave.WaveTransport>>serverProcessBody
> >optimized [] in Transport>>startServerProcess
> >BlockClosure>>on:do:
> >optimized [] in Process class>>forBlock:priority:
> >
> >----------------------------------------------------------------------
> >ISO8859L1String(Object)>>doesNotUnderstand:
> >Receiver:
> >	an ISO8859L1String
> >Arguments:
> >	aMessage = a Message with selector: #path and arguments: #()
> >Temporaries:
> >	excpt = a MessageNotUnderstood
> >	resumeValue = nil
> >Context PC = 25
> >
> >----------------------------------------------------------------------
> >Seaside.SeasideServlet>>doGet:response:
> >Receiver:
> >	a Seaside.SeasideServlet
> >Instance Variables:
> >	servletConfig = a VisualWave.ServletConfig
> >	dispatcherInitialized = true
> >Arguments:
> >	aRequest = a VisualWave.Request
> >	aResponse = a VisualWave.Response
> >Temporaries:
> >	waRequest = nil
> >	waResponse = nil
> >	dispatcher = nil
> >	handler = nil
> >Context PC = 16
> >
> >----------------------------------------------------------------------
> >Seaside.SeasideServlet(VisualWave.HttpServlet)>>service:response:
> >Receiver:
> >	a Seaside.SeasideServlet
> >Instance Variables:
> >	servletConfig = a VisualWave.ServletConfig
> >	dispatcherInitialized = true
> >Arguments:
> >	aServletRequest = a VisualWave.Request
> >	aServletResponse = a VisualWave.Response
> >Temporaries:
> >	method = 'GET'
> >Context PC = 13
> >
> >----------------------------------------------------------------------
> >VisualWave.ServletHandler>>basicEvaluate
> >Receiver:
> >	a VisualWave.ServletHandler
> >Instance Variables:
> >	status = nil
> >	reasonString = ''
> >	webRequest = a VisualWave.WebRequest
> >	webSite = WebSite register
> >	server = nil
> >	request = a VisualWave.Request
> >	response = a VisualWave.Response
> >	session = a VisualWave.HttpSession: key=14742032556888673255717667982,
> >last accessed (March 3, 2004 8:54:02.000)
> >	servletName = 'SeasideServlet'
> >	servletClass = nil
> >	servlet = a Seaside.SeasideServlet
> >Context PC = 7
> >
> >----------------------------------------------------------------------
> >optimized [] in VisualWave.WWHandler>>evaluate
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.self = a VisualWave.ServletHandler
> >Context PC = 6
> >
> >----------------------------------------------------------------------
> >BlockClosure>>on:do:
> >Receiver:
> >	a BlockClosure
> >Instance Variables:
> >	method = CompiledBlock [] in VisualWave.WWHandler>>evaluate
> >	outerContext = nil
> >	copiedValues = a VisualWave.ServletHandler
> >Arguments:
> >	anExceptionSelector = VisualWave.SkipRestOfPageException
> >	handlerBlock = BlockClosure [] in VisualWave.WWHandler>>evaluate
> >Context PC = 18
> >
> >----------------------------------------------------------------------
> >VisualWave.ServletHandler(VisualWave.WWHandler)>>evaluate
> >Receiver:
> >	a VisualWave.ServletHandler
> >Instance Variables:
> >	status = nil
> >	reasonString = ''
> >	webRequest = a VisualWave.WebRequest
> >	webSite = WebSite register
> >	server = nil
> >	request = a VisualWave.Request
> >	response = a VisualWave.Response
> >	session = a VisualWave.HttpSession: key=14742032556888673255717667982,
> >last accessed (March 3, 2004 8:54:02.000)
> >	servletName = 'SeasideServlet'
> >	servletClass = nil
> >	servlet = a Seaside.SeasideServlet
> >Context PC = 12
> >
> >----------------------------------------------------------------------
> >VisualWave.ServletHandler>>sendEntityOver:
> >Receiver:
> >	a VisualWave.ServletHandler
> >Instance Variables:
> >	status = nil
> >	reasonString = ''
> >	webRequest = a VisualWave.WebRequest
> >	webSite = WebSite register
> >	server = nil
> >	request = a VisualWave.Request
> >	response = a VisualWave.Response
> >	session = a VisualWave.HttpSession: key=14742032556888673255717667982,
> >last accessed (March 3, 2004 8:54:02.000)
> >	servletName = 'SeasideServlet'
> >	servletClass = nil
> >	servlet = a Seaside.SeasideServlet
> >Arguments:
> >	aStream = an ExternalReadAppendStream
> >Context PC = 4
> >
> >----------------------------------------------------------------------
> >VisualWave.ServletHandler(VisualWave.WWHandler)>>sendCGIOver:for:
> >Receiver:
> >	a VisualWave.ServletHandler
> >Instance Variables:
> >	status = nil
> >	reasonString = ''
> >	webRequest = a VisualWave.WebRequest
> >	webSite = WebSite register
> >	server = nil
> >	request = a VisualWave.Request
> >	response = a VisualWave.Response
> >	session = a VisualWave.HttpSession: key=14742032556888673255717667982,
> >last accessed (March 3, 2004 8:54:02.000)
> >	servletName = 'SeasideServlet'
> >	servletClass = nil
> >	servlet = a Seaside.SeasideServlet
> >Arguments:
> >	aStream = an ExternalReadAppendStream
> >	aWebRequest = a VisualWave.WebRequest
> >Context PC = 5
> >
> >----------------------------------------------------------------------
> >optimized [] in VisualWave.WebRequest>>answerWith:
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.self = a VisualWave.WebRequest
> >	.aResponse = a VisualWave.ServletHandler
> >Context PC = 26
> >
> >----------------------------------------------------------------------
> >BlockClosure>>on:do:
> >Receiver:
> >	a BlockClosure
> >Instance Variables:
> >	method = CompiledBlock [] in VisualWave.WebRequest>>answerWith:
> >	outerContext = nil
> >	copiedValues = an Array[2]
> >Arguments:
> >	anExceptionSelector = an ExceptionSet[1]
> >	handlerBlock = BlockClosure [] in VisualWave.WebRequest>>answerWith:
> >Context PC = 18
> >
> >----------------------------------------------------------------------
> >VisualWave.WebRequest>>answerWith:
> >Receiver:
> >	a VisualWave.WebRequest
> >Instance Variables:
> >	httpRequest = nil
> >	serverEnvironment = a Dictionary[34]
> >	queryData = nil
> >	cookieData = a VisualWave.IM_ApplicationWWWFormUrlEncoded
> >	responseStream = an ExternalReadAppendStream
> >	consumedPath = an OrderedCollection[3]
> >	unconsumedPath = an OrderedCollection[3]
> >	initiator = a VisualWave.WebRequestService
> >	entities = nil
> >	webSite = WebSite register
> >	session = a VisualWave.HttpSession: key=14742032556888673255717667982,
> >last accessed (March 3, 2004 8:54:02.000)
> >	isAnswered = false
> >Arguments:
> >	aResponse = a VisualWave.ServletHandler
> >Context PC = 13
> >
> >----------------------------------------------------------------------
> >VisualWave.WebRequestService>>privateDispatchRequest:
> >Receiver:
> >	a VisualWave.WebRequestService
> >Instance Variables:
> >	resolver = a VisualWave.PathInfoPrefixResolver
> >	server = WaveIPRequestBroker	 active 	localhost:2223
> >	trapErrors = false
> >	logChannels = a Dictionary[2]
> >	logChannelsMutex = a Semaphore[0]
> >	loadLogChannel = nil
> >Arguments:
> >	aWebRequest = a VisualWave.WebRequest
> >Temporaries:
> >	responder = a VisualWave.WWResponder
> >	answer = a VisualWave.ServletHandler
> >Context PC = 14
> >
> >----------------------------------------------------------------------
> >VisualWave.WebRequestService>>dispatchRequest:
> >Receiver:
> >	a VisualWave.WebRequestService
> >Instance Variables:
> >	resolver = a VisualWave.PathInfoPrefixResolver
> >	server = WaveIPRequestBroker	 active 	localhost:2223
> >	trapErrors = false
> >	logChannels = a Dictionary[2]
> >	logChannelsMutex = a Semaphore[0]
> >	loadLogChannel = nil
> >Arguments:
> >	aWebRequest = a VisualWave.WebRequest
> >Context PC = 5
> >
> >----------------------------------------------------------------------
> >VisualWave.WebRequestService>>privateServe:
> >Receiver:
> >	a VisualWave.WebRequestService
> >Instance Variables:
> >	resolver = a VisualWave.PathInfoPrefixResolver
> >	server = WaveIPRequestBroker	 active 	localhost:2223
> >	trapErrors = false
> >	logChannels = a Dictionary[2]
> >	logChannelsMutex = a Semaphore[0]
> >	loadLogChannel = nil
> >Arguments:
> >	aStream = an ExternalReadAppendStream
> >Temporaries:
> >	answer = nil
> >	webHit = a VisualWave.WebHit
> >	request = a VisualWave.WebRequest
> >Context PC = 49
> >
> >----------------------------------------------------------------------
> >optimized [] in VisualWave.WebRequestService>>serveMarshaller:
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.self = a VisualWave.WebRequestService
> >	.stream = an ExternalReadAppendStream
> >Context PC = 7
> >
> >----------------------------------------------------------------------
> >BlockClosure>>on:do:
> >Receiver:
> >	a BlockClosure
> >Instance Variables:
> >	method = CompiledBlock [] in
> >VisualWave.WebRequestService>>serveMarshaller:
> >	outerContext = nil
> >	copiedValues = an Array[2]
> >Arguments:
> >	anExceptionSelector = an ExceptionSet[2]
> >	handlerBlock = BlockClosure [] in
> >VisualWave.WebRequestService>>serveMarshaller:
> >Context PC = 18
> >
> >----------------------------------------------------------------------
> >VisualWave.WebRequestService>>serveMarshaller:
> >Receiver:
> >	a VisualWave.WebRequestService
> >Instance Variables:
> >	resolver = a VisualWave.PathInfoPrefixResolver
> >	server = WaveIPRequestBroker	 active 	localhost:2223
> >	trapErrors = false
> >	logChannels = a Dictionary[2]
> >	logChannelsMutex = a Semaphore[0]
> >	loadLogChannel = nil
> >Arguments:
> >	aWaveMarshaller = a VisualWave.WaveMarshaler
> >Temporaries:
> >	stream = an ExternalReadAppendStream
> >	alreadyHandledOnce = true
> >Context PC = 26
> >
> >----------------------------------------------------------------------
> >VisualWave.WaveMarshaler>>handleIncomingMessageOn:
> >Receiver:
> >	a VisualWave.WaveMarshaler
> >Instance Variables:
> >	manager = Transport<a VisualWave.WaveTransport
> >	configuration = MarshalerConfiguration wave
> >	service: a VisualWave.WebRequestService
> >	service = a VisualWave.WebRequestService
> >	virtualDirectories = nil
> >	hostname = nil
> >	port = nil
> >Arguments:
> >	aTransport = Transport<a VisualWave.WaveTransport
> >Context PC = 4
> >
> >----------------------------------------------------------------------
> >optimized [] in [] in VisualWave.WaveTransport>>handlingIncomingMessage
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.self = Transport<a VisualWave.WaveTransport
> >Context PC = 7
> >
> >----------------------------------------------------------------------
> >BlockClosure>>ensure:
> >Receiver:
> >	a BlockClosure
> >Instance Variables:
> >	method = CompiledBlock [] in [] in
> >VisualWave.WaveTransport>>handlingIncomingMessage
> >	outerContext = nil
> >	copiedValues = Transport<a VisualWave.WaveTransport
> >Arguments:
> >	aBlock = BlockClosure [] in [] in
> >VisualWave.WaveTransport>>handlingIncomingMessage
> >Temporaries:
> >	result = nil
> >Context PC = 4
> >
> >----------------------------------------------------------------------
> >optimized [] in VisualWave.WaveTransport>>handlingIncomingMessage
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.self = Transport<a VisualWave.WaveTransport
> >Context PC = 13
> >
> >----------------------------------------------------------------------
> >BlockClosure>>on:do:
> >Receiver:
> >	a BlockClosure
> >Instance Variables:
> >	method = CompiledBlock [] in
> >VisualWave.WaveTransport>>handlingIncomingMessage
> >	outerContext = nil
> >	copiedValues = Transport<a VisualWave.WaveTransport
> >Arguments:
> >	anExceptionSelector = Error
> >	handlerBlock = BlockClosure [] in
> >VisualWave.WaveTransport>>handlingIncomingMessage
> >Context PC = 18
> >
> >----------------------------------------------------------------------
> >VisualWave.WaveTransport>>handlingIncomingMessage
> >Receiver:
> >	a VisualWave.WaveTransport
> >Instance Variables:
> >	handlers = nil
> >	state = #running
> >	manager = Adaptor<a VisualWave.WaveConnectionAdaptor
> >	serverProcess = a Process in Process>>resume
> >	sendLock = a Semaphore[0]
> >	marshaler = a VisualWave.WaveMarshaler
> >	unmarshaler = a VisualWave.WaveMarshaler
> >	readBuffer = a TransportMessageHeader[1024]
> >	writeBuffer = a TransportMessageHeader[1024]
> >	configuration = TransportConfiguration waveCGI
> >	marshaler: (MarshalerConfiguration wave
> >		service: a VisualWave.WebRequestService)
> >	serverPriority: 65
> >	requestRegistry = an OtWeakValueDictionary
> >	nextRequestId = 0
> >	sessionObjects = a Set[0]
> >	id = IPSocketAddress(port#35550 at:hana)
> >	writeStream = an ExternalReadAppendStream
> >	readStream = an ExternalReadAppendStream
> >	socket = an active SocketAccessor
> >Context PC = 12
> >
> >----------------------------------------------------------------------
> >VisualWave.WaveTransport>>serverProcessBody
> >Receiver:
> >	a VisualWave.WaveTransport
> >Instance Variables:
> >	handlers = nil
> >	state = #running
> >	manager = Adaptor<a VisualWave.WaveConnectionAdaptor
> >	serverProcess = a Process in Process>>resume
> >	sendLock = a Semaphore[0]
> >	marshaler = a VisualWave.WaveMarshaler
> >	unmarshaler = a VisualWave.WaveMarshaler
> >	readBuffer = a TransportMessageHeader[1024]
> >	writeBuffer = a TransportMessageHeader[1024]
> >	configuration = TransportConfiguration waveCGI
> >	marshaler: (MarshalerConfiguration wave
> >		service: a VisualWave.WebRequestService)
> >	serverPriority: 65
> >	requestRegistry = an OtWeakValueDictionary
> >	nextRequestId = 0
> >	sessionObjects = a Set[0]
> >	id = IPSocketAddress(port#35550 at:hana)
> >	writeStream = an ExternalReadAppendStream
> >	readStream = an ExternalReadAppendStream
> >	socket = an active SocketAccessor
> >Context PC = 9
> >
> >----------------------------------------------------------------------
> >optimized [] in Transport>>startServerProcess
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.self = Transport<a VisualWave.WaveTransport
> >Context PC = 6
> >
> >----------------------------------------------------------------------
> >BlockClosure>>on:do:
> >Receiver:
> >	a BlockClosure
> >Instance Variables:
> >	method = CompiledBlock [] in Transport>>startServerProcess
> >	outerContext = nil
> >	copiedValues = Transport<a VisualWave.WaveTransport
> >Arguments:
> >	anExceptionSelector = TerminateException
> >	handlerBlock = BlockClosure [] in [] in Process
> >class>>forBlock:priority:
> >Context PC = 18
> >
> >----------------------------------------------------------------------
> >optimized [] in Process class>>forBlock:priority:
> >Receiver:
> >	an UndefinedObject
> >Temporaries:
> >	.aBlock = BlockClosure [] in Transport>>startServerProcess
> >Context PC = 9
> >
> >
> >_______________________________________________
> >Seaside mailing list
> >Seaside at lists.squeakfoundation.org
> >http://lists.squeakfoundation.org/listinfo/seaside
> >  
> >
> 
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/seaside
> 



More information about the Seaside mailing list