Wiki source code of Development-Common Pitfalls and Troubleshooting
Last modified by Pascal Robert on 2010/09/13 00:24
Show last authors
author | version | line-number | content |
---|---|---|---|
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. |