Well, maybe that is because messy versions of artifacts I had installed in my 
Karaf copy, but generally - always when I wanted open page different than 
Dashboard I've got a:

13:17:04,076 | ERROR | 9573-279 - /cns/ | Objects                          | 
.apache.wicket.util.lang.Objects 1138 | 110 - org.ops4j.pax.wicket.service - 
0.8.0.SNAPSHOT | Error serializing object class 
org.apache.karaf.webconsole.core.internal.DashboardPage [object=[Page class = 
org.apache.karaf.webconsole.core.internal.DashboardPage, id = 1, version = 0]]
org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: 
Unable to serialize class: org.apache.felix.framework.BundleContextImpl
Field hierarchy is:
  1 [class=org.apache.karaf.webconsole.core.internal.DashboardPage, path=1]
    private java.lang.Object org.apache.wicket.MarkupContainer.children 
[class=[Ljava.lang.Object;]
      java.lang.Object org.apache.wicket.Component.data[1] 
[class=org.apache.karaf.webconsole.core.BasePage$1, path=1:tabs]
        java.lang.Object org.apache.wicket.Component.data 
[class=org.apache.wicket.model.util.WildcardListModel]
          private java.lang.Object 
org.apache.wicket.model.util.GenericBaseModel.object 
[class=org.ops4j.pax.wicket.util.proxy.$Proxy63]
            private final org.ops4j.pax.wicket.util.proxy.IProxyTargetLocator 
org.ops4j.pax.wicket.util.proxy.LazyInitProxyFactory$ProxyReplacement.locator 
[class=org.ops4j.pax.wicket.internal.injection.blueprint.BlueprintBeanProxyTargetLocator]
              private org.osgi.framework.BundleContext 
org.ops4j.pax.wicket.internal.injection.AbstractProxyTargetLocator.bundleContext
 [class=org.apache.felix.framework.BundleContextImpl] <----- field that is not 
serializable

Making tabs transient solved this problem and allowed Pax-Wicket to inject new 
value every time without need to take care about serialization. So far it works.

Regards,
Lukasz

> Did you encounter an error that you've added transient here? This shouldn't
> be required.
> 
> Kind regards,
> Andreas
> On Aug 12, 2011 1:23 PM, <[email protected]> wrote:
>> Author: ldywicki
>> Date: Fri Aug 12 11:22:33 2011
>> New Revision: 1157052
>> 
>> URL: http://svn.apache.org/viewvc?rev=1157052&view=rev
>> Log:
>> Fix problem with serialization of @PaxWicketBean annotated field
>> 
>> Modified:
>> 
> karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
>> 
>> Modified:
> karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
>> URL:
> http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java?rev=1157052&r1=1157051&r2=1157052&view=diff
>> 
> ==============================================================================
>> ---
> karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
> (original)
>> +++
> karaf/sandbox/pieber/karaf-webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/BasePage.java
> Fri Aug 12 11:22:33 2011
>> @@ -5,6 +5,7 @@ import org.apache.wicket.extensions.mark
>> import org.apache.wicket.markup.html.CSSPackageResource;
>> import org.apache.wicket.markup.html.WebPage;
>> import org.apache.wicket.markup.html.basic.Label;
>> +import org.apache.wicket.markup.html.link.BookmarkablePageLink;
>> import org.apache.wicket.markup.html.link.PageLink;
>> import org.apache.wicket.markup.html.list.ListItem;
>> import org.apache.wicket.markup.html.list.ListView;
>> @@ -19,7 +20,7 @@ import java.util.List;
>> public class BasePage extends WebPage {
>> 
>> @PaxWicketBean(name = "tabs")
>> - private List<ConsoleTab> tabs;
>> + private transient List<ConsoleTab> tabs;
>> 
>> public BasePage() {
>> add(CSSPackageResource.getHeaderContribution(BasePage.class,
> "style.css"));
>> @@ -30,14 +31,14 @@ public class BasePage extends WebPage {
>> @Override
>> protected void populateItem(ListItem<ConsoleTab> item) {
>> final ConsoleTab tab = item.getModelObject();
>> - item.add(new PageLink("moduleLink", tab.getModuleHomePage()).add(new
> Label("moduleLabel", tab.getLabel())));
>> + item.add(new BookmarkablePageLink("moduleLink",
> tab.getModuleHomePage()).add(new Label("moduleLabel", tab.getLabel())));
>> 
>> List<String> subItems = new LinkedList<String>(tab.getItems().keySet());
>> item.add(new ListView<String>("topLinks", subItems) {
>> @Override
>> protected void populateItem(ListItem<String> item) {
>> String subItem = item.getModelObject();
>> - item.add(new PageLink("topLink", tab.getItems().get(subItem)).add(new
> Label("linkLabel", subItem)));
>> + item.add(new BookmarkablePageLink("topLink",
> tab.getItems().get(subItem)).add(new Label("linkLabel", subItem)));
>> }
>> });
>> }
>> 
>> 

Reply via email to