Hi,
I'm using weblocks-dev about 2 months old, and I have some strange
issues with this code, and couple of questions:
(defun layout (comp)
(setf (weblocks:composite-widgets comp)
(list
(make-instance 'flash :messages
(list (weblocks:make-widget "Some welcome message")))
(weblocks:make-navigation "Main menu"
(list "MainMenuItem1" (main-menu-item1)
"mainmenuitem1")
(list "MainMenuItem2"
(weblocks:make-navigation "MainMenuItem2"
(list
"SubMM2Item1" (sub-mm2-item1) "submm2item1")
(list
"SubMM2Item2" (sub-mm2-item2) "submm2item2")))
(list "MainMenuItem3"
(weblocks:make-navigation "MainMenuItem3"
(list
"SubMM3Item1" (sub-mm3-item1) "submm3item1")
(list
"SubMM3Item2" (sub-mm3-item2) "submm3item2")))))))
It compiles fine, but weblocks complains with the backtrace saying
UNBOUND-SLOT: The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
The strange thing is that if I reload the page without resseting the
session, menu shows up, and every menu item is there and works as is
supposed to. But every time I reset the session, I first get the same
error, and then when I again reload the page without reseting the
session, everything works fine.
Now, the questions:
- I understand that the one element of the list ("menu" (function)
"menu") is for displaying on the menu, but what is the second "menu"
for?
- I've seen examples that use ('menuitem (function)) format. What are
advantages/disadvantages compared to the first method?
Detailed backtrace:
Weblocks caught an error
Description
UNBOUND-SLOT: The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
Actions
Reset this web application's session
Session data
TODO
Restarts
TODO
Backtrace
Function Arguments
33 MAP-BACKTRACE #<CLOSURE (LAMBDA (SB-DEBUG::FRAME)) {10041CBB09}>
32 BACKTRACE-AS-LIST 1152921504606846975
31 (FAST-METHOD HANDLE-ERROR-CONDITION (WEBLOCKS-WEBAPP T))
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
30 (FLET LAMBDA13)
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
29 SIGNAL
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
28 ERROR
The slot WEBLOCKS::BASE-URI is unbound in the object
#<WEBLOCKS:NAVIGATION "MainMenuItem3">.
27 (FAST-METHOD SLOT-UNBOUND (T T T))
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">
BASE-URI
26 SLOT-UNBOUND-INTERNAL #<NAVIGATION "MainMenuItem3"> 8
25 (FAST-METHOD RENDER-NAVIGATION-MENU (NAVIGATION))
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">
24 (LAMBDA (OBJ &REST ARGS))
#<NAVIGATION "MainMenuItem3">
23 (FAST-METHOD WITH-WIDGET-HEADER (T T))
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">
#<FUNCTION (LAMBDA (WEBLOCKS::OBJ &REST WEBLOCKS::ARGS)) {10038067F9}>
22 (FAST-METHOD RENDER-WIDGET (T))
#<unavailable argument>
#<unavailable argument>
#<NAVIGATION "MainMenuItem3">
21 RENDER-DIRTY-WIDGETS
20 (LAMBDA ())
19 (FAST-METHOD HANDLE-CLIENT-REQUEST (WEBLOCKS-WEBAPP))
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
18 (FLET doit-71)
17 (FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (T))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
WEBLOCKS:HANDLE-CLIENT-REQUEST #)> :PV NIL :NEXT-METHOD-CALL NIL
:ARG-INFO (1))
#<VTS {1002ACF001}>
16 (FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (T))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
WEBLOCKS:HANDLE-CLIENT-REQUEST #)> :PV NIL :NEXT-METHOD-CALL NIL
:ARG-INFO (1))
#<VTS {1002ACF001}>
15 CALL-IN-WEBAPP
#<VTS {1002ACF001}>
#<CLOSURE (LAMBDA ()) {10040FBC59}>
14 (FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (WEBLOCKS-WEBAPP))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND ...)> :PV NIL :NEXT-METHOD-CALL
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL
:NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1))
#<VTS {1002ACF001}>
13 (FAST-METHOD HANDLE-REQUEST (ACCEPTOR REQUEST))
#<unavailable argument>
#<unavailable argument>
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<REQUEST {10040273A1}>
12 (FAST-METHOD PROCESS-REQUEST (T))
#<unavailable argument>
#<unavailable argument>
#<REQUEST {10040273A1}>
11 (FAST-METHOD PROCESS-CONNECTION (ACCEPTOR T))
#<unavailable argument>
#<unavailable argument>
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<STREAM-USOCKET {10039D0D81}>
10 (FAST-METHOD PROCESS-CONNECTION (WEBLOCKS-ACCEPTOR T))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
HUNCHENTOOT:PROCESS-CONNECTION #)> :PV NIL :NEXT-METHOD-CALL NIL
:ARG-INFO (2))
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<STREAM-USOCKET {10039D0D81}>
9 (FAST-METHOD PROCESS-CONNECTION AROUND (ACCEPTOR T))
#<unavailable argument>
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD
HUNCHENTOOT:PROCESS-CONNECTION #)> :PV NIL :NEXT-METHOD-CALL
#S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL
:NEXT-METHOD-CALL NIL :ARG-INFO (2)) :ARG-INFO (2))
#<WEBLOCKS-ACCEPTOR (host localhost, port 8443)>
#<STREAM-USOCKET {10039D0D81}>
8 (LAMBDA ())
7 (FLET WITHOUT-INTERRUPTS-BODY-[BLOCK369]374)
6 (FLET WITH-MUTEX-THUNK)
5 (FLET WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)
4 CALL-WITH-MUTEX
#<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF21BECB9}>
#S(SB-THREAD:MUTEX :NAME thread result lock :%OWNER #<THREAD
"rendering widget #<NAVIGATION \"MainMenuItem3\">" RUNNING
{1003CEAE41}> :STATE 1)
#<THREAD "rendering widget #<NAVIGATION \"MainMenuItem3\">" RUNNING
{1003CEAE41}>
T
3 INITIAL-THREAD-FUNCTION
2 foreign function: call_into_lisp
1 foreign function: new_thread_trampoline
This is the Weblocks Application Framework running on Hunchentoot
1.1.1 (SBCL 1.0.44) at localhost:8443
--
You received this message because you are subscribed to the Google Groups
"weblocks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/weblocks?hl=en.