Last modified by Pascal Robert on 2010/09/13 00:24

Show last authors
1 == Debugging Classpath Problems ==
2
3 === Chuck Hill ===
4
5 I recently found this useful and thought others might too:
6
7 {{code}}
8
9 System.out.println("\nClassPath Follows....\n");
10 ClassLoader classLoader = ClassLoader.getSystemClassLoader();
11 URL[] urls = ((URLClassLoader)classLoader).getURLs();
12 for(int i=0; i<urls.length; i++) {
13 System.out.println(urls[i].toString() + "\n");
14 }
15
16 {{/code}}
17
18 Add this to public static void main(String argv[]) before the call to WOApplication.main(argv, Application.class) and add these imports:
19
20 {{code}}
21
22 import java.io.*;
23 import java.net.*;
24
25 {{/code}}
26
27 == Backtracked Too Far Errors ==
28
29 There are several things that can cause this:
30
31 * having a page cache size that is too small, set the cache size on Application
32 * the session missing on the URL. If WO creates a new session and then tries to use a component action URL you can get this error
33 * bad HTML on the page can cause a new session to get generated. If you are storing the session ID in cookies, this can replace the "real" session ID
34 * something (java script, bad HTML) creating a flurry of bad requests to the app and thus knocking the page out of the cache. You can override and add logging to savePage() in Session to check for this
35 * other things...
36
37 === Not Using PageWithName to Create Pages ===
38
39 Creating pages directly like this
40
41 {{code 0="java"}}
42
43 public EditOrder editBooking() {
44 EditOrder nextPage = new EditOrder(context()); // BAD BAD BAD
45 return nextPage;
46 }
47
48 {{/code}}
49
50 instead of,
51
52 {{code 0="java"}}
53
54 public EditOrder editBooking() {
55 EditOrder nextPage = (EditOrder)pageWithName(EditOrder.class.getName());
56 return nextPage;
57 }
58
59 {{/code}}
60
61 can result in the page not getting saved in the page cache (and probably other bad things too) which will result in this back tracking error.