[Seaside] VW cgi interface

Brett Taylor brett.taylor at healthauditors.com
Wed Mar 3 18:00:25 CET 2004


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. 

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




More information about the Seaside mailing list