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