[plt-scheme] Serializing/deserializing in a servlet

From: Robby Findler (robby at cs.uchicago.edu)
Date: Sat Nov 29 00:26:19 EST 2008

Would a #:prefab struct help?

Robby

On Fri, Nov 28, 2008 at 11:23 PM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
> Servlets don't share namespaces, in particular, this means that
> servlets can't interact with each other through structs, which are
> generative. You can solve this by passing the #:make-servlet-namespace
> argument to serve/servlet passing in the module spec of the source of
> the struct. I could debug this program tomorrow, but I don't have time
> right now.
>
> Jay
>
> On Fri, Nov 28, 2008 at 12:45 PM, Eddie Sullivan <eddieSull at hotmail.com> wrote:
>> Hi.
>> The following simple code works well normally, but when run in a servlet
>> causes a strange error:
>>
>> #lang scheme
>>
>> (require scheme/serialize
>>        web-server/servlet-env)
>>
>> (define-serializable-struct test-struct
>>  (a))
>>
>> (define (test-serialize)
>>  (let* ([s (make-test-struct
>>           "Eddie Sullivan")]
>>        [serialized-s (serialize s)]
>>        [new-s (deserialize serialized-s)])
>>   (display (format "test-serialize: Saved a: ~a" (test-struct-a
>>                                                   new-s)))))
>>
>>
>> (define (go)
>>  (serve/servlet start))
>>
>> (define (start request)
>>  (test-serialize))
>>
>>
>> In DrScheme (Windows, vs 4.1.3), if I call (test-serialize), I see the
>> expected result:
>>
>> test-serialize: Saved a: Eddie Sullivan
>>
>> On the other hand, if I call (go), I see the following error:
>>
>> Servlet (@ /servlets/standalone.ss) exception:
>> test-struct-a: expects args of type <struct:test-struct>; given instance of
>> a different <struct:test-struct>
>>
>> Any tips?
>> Thanks.
>> -Eddie Sullivan
>>
>>
>>
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>
>
>
> --
> Jay McCarthy <jay at cs.byu.edu>
> Assistant Professor / Brigham Young University
> http://jay.teammccarthy.org
>
> "The glory of God is Intelligence" - D&C 93
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>


Posted on the users mailing list.