I think wicket iolite has this aswell...
2009/11/10 Владимир Михайленко <vladimir.web...@gmail.com> > Thank you, now it works. > > On Tue, Nov 10, 2009 at 8:29 PM, Pieter Degraeuwe < > pieter.degrae...@systemworks.be> wrote: > > > You are getting this exception from a unittest. When you use WicketTester > > in > > combination with Spring injection, you have to tweak it a bit: > > You have to add the spring applicationContext to the mock ServletContext: > > > > Soe here a expect that you already did construct the spring > > applicationContext. Creating the WicketTester: > > > > tester = new WicketTester(createWebApplication()) { > > @Override > > public ServletContext newServletContext(String path) { > > MockServletContext servletContext = > (MockServletContext) > > super.newServletContext(path); > > > > > > > servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, > > applicationContext); > > return servletContext; > > } > > }; > > tester.getWicketSession().setLocale(getLocale()); > > new SpringComponentInjector(tester.getApplication(), > > applicationContext); > > testerHolder = tester; > > > > > > That should do it: > > > > 2009/11/10 Владимир Михайленко <vladimir.web...@gmail.com> > > > > > Hello. > > > > > > I just created wicket quickstart project via maven and want add Spring > DI > > > to > > > Wicket. So I added to WicketApplication: > > > > > > @Override > > > protected void init() > > > { > > > super.init(); > > > addComponentInstantiationListener(new > > > SpringComponentInjector(this)); > > > } > > > > > > In web.xml I added: > > > > > > <context-param> > > > <param-name>contextConfigLocation</param-name> > > > <param-value>/WEB-INF/applicationContext.xml</param-value> > > > </context-param> > > > > > > <filter> > > > <filter-name>wicket.jobmd</filter-name> > > > > > > > <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> > > > <init-param> > > > <param-name>applicationFactoryClassName</param-name> > > > > > > > > > > > > <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value> > > > </init-param> > > > <init-param> > > > <param-name>applicationBean</param-name> > > > <param-value>wicketApplication</param-value> > > > </init-param> > > > </filter> > > > > > > <listener> > > > > > > > > > > > > <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> > > > </listener> > > > > > > In pom.xml: > > > > > > <dependency> > > > <groupId>org.apache.wicket</groupId> > > > <artifactId>wicket-spring</artifactId> > > > <version>${wicket.version}</version> > > > </dependency> > > > <dependency> > > > <groupId>org.springframework</groupId> > > > <artifactId>spring</artifactId> > > > <version>2.5.6</version> > > > </dependency> > > > > > > In applicationContext.xml: > > > > > > <bean id="wicketApplication" > > > class="com.mihailenco.WicketApplication"></bean> > > > > > > Then when I build project in latest stable NetBeans I get this error in > > > console: > > > > > > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.579 > sec > > > <<< FAILURE! > > > testRenderMyPage(com.mihailenco.TestHomePage) Time elapsed: 1.435 sec > > <<< > > > ERROR! > > > java.lang.IllegalStateException: No WebApplicationContext found: no > > > ContextLoaderListener registered? > > > at > > > > > > > > > org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplicationContextUtils.java:70) > > > at > > > > > > > > > org.apache.wicket.spring.injection.annot.SpringComponentInjector.<init>(SpringComponentInjector.java:72) > > > at > > com.mihailenco.WicketApplication.init(WicketApplication.java:24) > > > at > > > > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:708) > > > at > > > > > > > > > org.apache.wicket.protocol.http.MockWebApplication.<init>(MockWebApplication.java:168) > > > at > > > > > > > > > org.apache.wicket.util.tester.BaseWicketTester.<init>(BaseWicketTester.java:217) > > > at > > > > org.apache.wicket.util.tester.WicketTester.<init>(WicketTester.java:317) > > > at > > > > org.apache.wicket.util.tester.WicketTester.<init>(WicketTester.java:300) > > > at com.mihailenco.TestHomePage.setUp(TestHomePage.java:16) > > > at junit.framework.TestCase.runBare(TestCase.java:128) > > > at junit.framework.TestResult$1.protect(TestResult.java:106) > > > at junit.framework.TestResult.runProtected(TestResult.java:124) > > > at junit.framework.TestResult.run(TestResult.java:109) > > > at junit.framework.TestCase.run(TestCase.java:120) > > > at junit.framework.TestSuite.runTest(TestSuite.java:230) > > > at junit.framework.TestSuite.run(TestSuite.java:225) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > > at > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > > at java.lang.reflect.Method.invoke(Method.java:597) > > > at > > > > > > org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213) > > > at > > > > > > > > > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140) > > > at > > > > > > > > > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127) > > > at org.apache.maven.surefire.Surefire.run(Surefire.java:177) > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > at > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > > at > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > > at java.lang.reflect.Method.invoke(Method.java:597) > > > at > > > > > > > > > org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345) > > > at > > > > > > > > > org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009) > > > > > > Did I missed something? Thank you. > > > > > > > > > > > -- > > Pieter Degraeuwe > > Systemworks bvba > > Belgiëlaan 61 > > 9070 Destelbergen > > GSM: +32 (0)485/68.60.85 > > Email: pieter.degrae...@systemworks.be > > visit us at http://www.systemworks.be > > >