[Bese-devel] Issues with mod-lisp with latest ucw_ajax patches..

Attila Lendvai attila.lendvai at gmail.com
Fri Aug 25 09:09:59 UTC 2006


> The apparent issue is that GET and POST methods that used to be mapped
> to /index.ucw?foo are now going directly to /?foo.  So, from my apache
> logs, the initial request:
>
> 127.0.0.1 - - [25/Aug/2006:00:45:24 -0600] "GET /index.ucw HTTP/1.1" 200 6445
>
> Works just fine.  But clicking on anthing fails with something like:
>
> 127.0.0.1 - - [25/Aug/2006:00:45:41 -0600] "POST /?%5Fs=%5BLAHBLAHBLAH
>  HTTP/1.1" 200 1443
>
> The reason I suspect it is failing is because the apache server is set
> up to pass *.ucw requests to the lisp-handler (not all requests in the
> directory "/", which would fail anyway, because it wouldn't find
> things like the dojo files).
>
> Is there something I need to change in the application code or my
> mod_lisp configuration?

unfortunately there's an open design issue here. this is the patch
that broke your code:

http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=ucw-ucw_ajax;a=commit;h=20060823113005-6b9e8-63a017ed73f83b760ff1b1f78a244844bc6fdde6.gz

the problem is that compute-url of standard app was taking (query-path
(context.request *context*))) and this made it impossible to render a
component in a request arriving to a different url. now there's a new
dispatcher in the ajax branch, the polling-dispatcher, that is mapped
to app-url-prefix/polling. this is the point where the ajax apps are
connecting for any server events, and these events include rerendered
dirty components.

so, rendering a dirty component with the old behaviour rendered all
action-href's with the "/polling" part in it, which is obviously
incorrect.

unfortunately i don't understand the entire design around compute-url,
so if Marco had a few words on this i would be happy to hear them. but
i suspect that the clean solution is this patch and the user code
defining compute-url methods on the involved components where it's
necessary.

it'd be useful to have a permalink example.

now, as with apache. i don't know if it's doable, but if it's possible
to map intersecting url's with priority you could map the url-prefix
of the app (/ in your case) to the UCW server and then map
"/ucw/dojo/" "/ucw-static/" to the respective directories. (this may
need the rename of the ucw dir to ucw-static in wwwroot, which i will
do if people agree and if this solution works at all). looks like it's
time to set up apache and mod_lisp here. sorry for the inconveniece...

so, opinions?

-- 
- attila

"- The truth is that I've been too considerate, and so became
unintentionally cruel...
 - I understand.
 - No, you don't understand! We don't speak the same language!"
(Ingmar Bergman - Smultronstället)


More information about the bese-devel mailing list