ITestPageSource is not serializable. If it was, you wouldn't have this problem. I don't use that part of Wicket myself, nor wrote it, so I'm not sure if that interface not being serializable is intentional. Maybe Ingram Chen can comment on that?
Eelco On 6/22/06, Gert Jan Verhoog <[EMAIL PROTECTED]> wrote: > Juergen Donnerstag wrote: > > HTTP sessions and hence Wicket Pages get serialized and hence all it > > components and variable must be serializable or transient. We enforced > > that policy a little bit to make sure the error are detected earlier > > and late when the application is deployed already. Just make sure your > > components and component variable implement Serializable. > > I am aware of that. Please look at the example code I included in my > previous post. It's a trivial WebPage with a single label, and some > WicketTester test code. That's all that's needed to cause the exception. > This is code that I almost copied verbatim from the WicketTester api > docs. > > There are no custom beans, so I don't see what I could make > Serializable. In the actual project where I'm running into these > problems, all beans are serializable or transient, and all business > objects are injected with Spring proxies. (using @SpringBean annotations). > > The webapplication runs fine, it's *just* the WicketTester code that fails. > > Maybe there is a simple solution to this problem, but I'm obviously > overlooking it. > > cheers, > Gert > > > > > > > wicket.WicketRuntimeException: Internal error cloning object. Make sure > > all dependent objects implement Serializable. Class: > > wicket.util.tester.DummyHomePage > > > > > > On 6/21/06, Gert Jan Verhoog <[EMAIL PROTECTED]> wrote: > >> Hi list, > >> > >> After upgrading to Wicket 1.2, wicket tests for my project don't work > >> anymore. Testing a page that is initialized using a custom constructor > >> causes a WicketRuntimeException: > >> > >> wicket.WicketRuntimeException: Internal error cloning object. Make sure > >> all dependent objects implement Serializable. Class: > >> wicket.util.tester.DummyHomePage > >> at > >> wicket.protocol.http.HttpSessionStore.setAttribute(HttpSessionStore.java:62) > >> [... bits of stacktrace omitted for brevity ...] > >> Caused by: java.io.NotSerializableException: com.example.MyPageTest$1 > >> at > >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075) > >> at > >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369) > >> [... rest of stacktrace omitted for brevity ...] > >> > >> > >> I created the initialized page with an anonymous ITestPageSource, as per > >> the WicketTester javadocs. > >> > >> Consider the following example code that causes the error: > >> > >> MyPage.html: > >> - - - - - - - - - - - - - - - - - - - - - - - - - - > >> <html xmlns:wicket="http://wicket.sourceforge.net/"> > >> <head><title>bla</title></head> > >> <body> > >> <h1><span wicket:id="title">(title)</span></h1> > >> </body> > >> </html> > >> - - - - - - - - - - - - - - - - - - - - - - - - - - > >> > >> > >> MyPage.java: > >> - - - - - - - - - - - - - - - - - - - - - - - - - - > >> package com.example; > >> > >> import wicket.markup.html.WebPage; > >> import wicket.markup.html.basic.Label; > >> > >> public class MyPage extends WebPage { > >> > >> public MyPage() { > >> this("empty"); > >> } > >> > >> public MyPage(String title) { > >> add(new Label("title",title)); > >> } > >> } > >> - - - - - - - - - - - - - - - - - - - - - - - - - - > >> > >> > >> and finally, MyPageTest.java: > >> - - - - - - - - - - - - - - - - - - - - - - - - - - > >> package com.example; > >> > >> import junit.framework.TestCase; > >> import wicket.Page; > >> import wicket.util.tester.ITestPageSource; > >> import wicket.util.tester.WicketTester; > >> > >> public class MyPageTest extends TestCase { > >> > >> public void testRenderMyPage() { > >> WicketTester tester = new WicketTester(); > >> > >> // the following statement throws the exception: > >> tester.startPage(new ITestPageSource() { > >> public Page getTestPage() { > >> return new MyPage("hello world"); > >> } > >> }); > >> } > >> } > >> - - - - - - - - - - - - - - - - - - - - - - - - - - > >> > >> What's happening here? Most of my pages use custom constructors to > >> initialize the page, and every test method that use these cause the > >> error. What can I do about it? > >> > >> cheers, > >> Gert > >> > >> > >> -- > >> Gert Jan Verhoog > >> Func. Internet Integration > >> W http://www.func.nl > >> T +31 30 2109750 > >> F +31 30 2109751 > >> > >> > >> _______________________________________________ > >> Wicket-user mailing list > >> Wicket-user@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/wicket-user > >> > > > > > > _______________________________________________ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > -- > Gert Jan Verhoog > Func. Internet Integration > W http://www.func.nl > T +31 30 2109750 > F +31 30 2109751 > > All the advantages of Linux Managed Hosting--Without the Cost and Risk! > Fully trained technicians. The highest number of Red Hat certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user