Java 第一次跑边门

Java 第一次跑边门,java,google-app-engine,wicket,Java,Google App Engine,Wicket,我和你有问题 问题在于某些导入无法解决: 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(); getReso

我和你有问题

问题在于某些导入无法解决:

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版本

要迁移,您应该:

  • 删除代码
    WicketObjects.setObjectStreamFactory…
    。这将被为
    pageStore
    定义序列化程序所取代。请参阅迁移部分
  • 覆盖
    DefaultPageManagerProvider
    get
    方法,如下所示:
  • 对于进一步的迁移,您应该检查wicket

    @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);
    }