1. download相应框架的jar包和运行时必须的lib;Guice当前的版本已经升级到2.0 snapshot,只需要guice-core.jar和aopalliance.jar,warp-persist也只需求找一个最新的jar包即可;Wicket和Hibernate所需的lib比较多,主要需要注意cglib和slf4j(日志)。
2. 创建一个Guice的Module,扩展AbstractModule即可。
3. Module中首先装载Warp-Persist:
install(PersistenceService.usingHibernate().across(UnitOfWork.REQUEST).buildModule());
4. 然后配置hibernate configuation,我这里用的是AnnotationConfiguration,切记:configuration中一定要指定current_session_context_class这个参数。hibernate.cfg.xml放在WEB-INF/classes目录下。
AnnotationConfiguration result = new AnnotationConfiguration();
result.configure(ServiceModule.class.getResource("/hibernate.cfg.xml"));
result .setProperty("hibernate.current_session_context_class", "managed");
bind(Configuration.class).toInstance(result);
5. 最后,配置web.xml,一定要注意Warp‘s Filter和WicketFilter的位置,Warp‘s Filter一定要放置在WicketFilter的前面。并且指定WicketFilter的applicationFactoryClassName和module参数。
<filter>
<filter-name>sessionPerRequestFilter<filter-name>
<filter-class>com.wideplay.warp.persist.PersistenceFilter<filter-class>
</filter>
<filter-mapping>
<filter-name>sessionPerRequestFilter<filter-name>
<url-pattern>/*<url-pattern>
</filter-mapping>
<filter>
<filter-name>wicketFilter<filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter<filter-class>
<init-param>
<param-name>applicationFactoryClassName<param-name>
<param-value>org.apache.wicket.guice.GuiceWebApplicationFactory<param-value>
</init-param>
<init-param>
<param-name>module<param-name>
<param-value>com.deversoft.test.guice.WicketModule<param-value>
</init-param>
<init-param>
<param-name>wicket-guice.stage<param-name>
<param-value>DEVELOPMENT<param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>wicketFilter<filter-name>
<url-pattern>/*<url-pattern>
</filter-mapping>
参考资料:

没有评论:
发表评论