簡體   English   中英

第一次運行Wicket

[英]Running Wicket the first time

Wicket GAE示例應用程序出現問題

問題是某些導入無法解決:

import org.apache.wicket.page.PersistentPageManager; // This one 
import org.apache.wicket.util.io.IObjectStreamFactory; // and this cannot be resolved

@Override
    public void init()
    {
        super.init();
        getResourceSettings().setResourcePollFrequency(null);


        WicketObjects.setObjectStreamFactory(new IObjectStreamFactory() {

            @Override
            public ObjectInputStream newObjectInputStream(InputStream in)
                    throws IOException {
                return new ObjectInputStream(in);
            }

            @Override
            public ObjectOutputStream newObjectOutputStream(OutputStream out)
                    throws IOException {
                return new ObjectOutputStream(out);
            }

        });

        setPageManagerProvider(new DefaultPageManagerProvider(this) {

            public IPageManager get(IPageManagerContext pageManagerContext)
            {
                IDataStore dataStore = new HttpSessionDataStore(pageManagerContext, new PageNumberEvictionStrategy(10));
                IPageStore pageStore = new DefaultPageStore(getName(), dataStore,
                        getCacheSize());
                return new PersistentPageManager(getName(), pageStore, pageManagerContext);

            }
        });

        // add your configuration here
    }

另外,找不到getCacheSize()方法,我正在使用演示應用程序中使用的Wicket版本1.5-SNAPSHOT,但是我也嘗試了其他更高版本,但仍然無法解決,如何解決此問題?

此類和方法僅在RC版本(或更早版本)中引入,並從1.5版本中刪除

因此,您可以下載RC軟件包之一或遷移到1.5版本

要遷移,您應該:

  1. 刪除代碼WicketObjects.setObjectStreamFactory... 這將通過為pageStore定義序列化程序來pageStore 請參閱遷移部分。
  2. 重寫DefaultPageManagerProviderget方法,如下所示:
@Override
public IPageManager get(IPageManagerContext context)
{
    IDataStore dataStore = new HttpSessionDataStore(context, 
                                             new PageNumberEvictionStrategy(10));
    IPageStore pageStore = new DefaultPageStore ( 
                                     new JavaSerializer ( getName() ), dataStore,
                                     getStoreSettings().getInmemoryCacheSize());
    return new PageStoreManager(application.getName(), pageStore,
                                                           context);
}

對於進一步的遷移,您應該查看wicket 遷移指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM