Hi,
On Mon, Nov 4, 2013 at 12:08 PM, Selom <pierre.kou...@uhb.fr> wrote: > Hello, > I am crushing with my hairs with the following problem. > > > I don't know why Wicket won't instantiate my ldap bean. > > > Here is the *web.xm*l > > > <?xml version="1.0" encoding="ISO-8859-1"?> > <web-app xmlns="http://java.sun.com/xml/ns/javaee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > version="2.5"> > > <display-name>amemet</display-name> > > > > > <context-param> > <param-name>configuration</param-name> > <param-value>development</param-value> > </context-param> > > > <context-param> > <param-name>contextConfigLocation</param-name> > <param-value>classpath:applicationContext.xml</param-value> > </context-param> > > > > <filter> > <filter-name>wicket.amemet</filter-name> > > <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> > <init-param> > <param-name>applicationClassName</param-name> > > <param-value>org.univ.amemet.ApplicationAmemet</param-value> > </init-param> > </filter> > > <filter> > <filter-name>SpringContext</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> > </filter> > You need just one declaration of WicketFilter in web.xml. You need SpringWebApplicationFactory when you want the WebApplication implementation to be a Spring bean. Otherwise the setup with 'applicationClassName' is enough. Remove the second filter and the problem will disappear, I think. You can take a look at https://github.com/jWeekend/LegUp/tree/master/wicket-spring-jpa. It shows how to setup Wicket+Spring with annotation based (@Configuration) based config but the rest is the same. > > > <filter-mapping> > <filter-name>wicket.amemet</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > <filter-mapping> > <filter-name>SpringContext</filter-name> > <url-pattern>/*</url-pattern> > <dispatcher>REQUEST</dispatcher> > <dispatcher>INCLUDE</dispatcher> > </filter-mapping> > > > <listener> > <listener-class> > org.springframework.web.context.ContextLoaderListener > </listener-class> > </listener> > > > > > > <filter> > <filter-name>OpenEntityManagerInViewFilter</filter-name> > > > <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> > </filter> > <filter-mapping> > <filter-name>OpenEntityManagerInViewFilter</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > </web-app> > > > > > > > in maven /src/main/resources a piece of my * applicationContext.xml* . > > > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:p="http://www.springframework.org/schema/p" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:context="http://www.springframework.org/schema/context" > xmlns:tx="http://www.springframework.org/schema/tx" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd > http://www.springframework.org/schema/context > > http://www.springframework.org/schema/context/spring-context-3.0.xsd > http://www.springframework.org/schema/tx > > http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> > > > > > <context:annotation-config/> > <tx:annotation-driven/> > > <context:component-scan base-package="org.amemet" /> > > <context:component-scan base-package="org.univ.amemet" /> > <context:component-scan > base-package="org.springframework.ldap"></context:component-scan> > > <import resource="classpath:ldap.xml"/> > > > <bean id="applicationAmemet" class="org.univ.amemet.ApplicationAmemet"> > > > > </beans> > > > > and the ldap.xml > > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans > > http://www.springframework.org/schema/beans/spring-beans.xsd"> > > <bean id="contextSource" > > class="org.springframework.ldap.pool.factory.PoolingContextSource"> > <property name="contextSource" ref="contextSourceTarget" /> > <property name="dirContextValidator" > ref="dirContextValidator" /> > <property name="testOnBorrow" value="true" /> > <property name="testWhileIdle" value="true" /> > </bean> > > <bean id="dirContextValidator" > > class="org.springframework.ldap.pool.validation.DefaultDirContextValidator" > /> > <bean id="contextSourceTarget" > class="org.springframework.ldap.core.support.LdapContextSource"> > <property name="url" value="our own" /> > <property name="base" value="dc=xxxx,dc=xxxx,dc=..." /> > <property name="userDn" > value="cn=...,ou=...,dc=ldap,dc=...,dc=..." /> > <property name="password" value="xxxxxx"></property> > </bean> > > > > <bean id="ldapTemplate" > class="org.springframework.ldap.core.LdapTemplate"> > <constructor-arg ref="contextSource" /> > </bean> > > > > </beans> > > > > > > The application class > > > > public class ApplicationAmemet extends WebApplication { > @Override > public void init() > { > //... > /* Initialisation du context spring annotation > configuration */ > AnnotationConfigApplicationContext contextAnnotation = new > AnnotationConfigApplicationContext(); > contextAnnotation.scan("org.univ.amemet"); > > contextAnnotation.refresh(); > getComponentInstantiationListeners().add(new > SpringComponentInjector(this, contextAnnotation)); > > //initialisation du context spring xml configuration. > getComponentInstantiationListeners().add(new > SpringComponentInjector(this)); > > } > } > > > > > My Ldap component > > @ManagedBean > public class ILdapComposanteDaoImpl implements ILdapComposanteDao { > > > @SpringBean(name="ldapTemplate") > private LdapTemplate ldapTemplate; > //etc ... > } > > > > And at last the wicket class who use it . > > > > > > public class ListeUfrsPage extends BaseTemplate > { > > @SpringBean(name="ldapComposanteDao") > private ILdapComposanteDao ldapComposanteDao; > > > public ILdapComposanteDao getLdapComposanteDao() { > return ldapComposanteDao; > } > > public void setLdapComposanteDao(ILdapComposanteDao > ldapComposanteDao) { > this.ldapComposanteDao = ldapComposanteDao; > > } > > } > > > > > In the error messages, > > Last cause: null > WicketMessage: Can't instantiate page using constructor 'public > org.univ.amemet.pages.menu.ListeUfrsPage()'. An exception has been thrown > during construction! > > Root cause: > > java.lang.NullPointerException > at > > org.univ.amemet.services.ldap.ILdapComposanteDaoImpl.getUFRs(ILdapComposanteDaoImpl.java:211) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at java.lang.reflect.Method.invoke(Method.java:597) > at > > org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:435) > at $Proxy48.getUFRs(Unknown Source) > at > > org.univ.amemet.pages.menu.ListeUfrsPage.initListeUfrs(ListeUfrsPage.java:196) > at org.univ.amemet.pages.menu.ListeUfrsPage.<init>(ListeUfrsPage.java:96) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:175) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67) > at > > org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:133) > at > > org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268) > at > > org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166) > at > > org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:269) > at > > org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165) > at > > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:861) > at > > org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) > at > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289) > at > > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259) > at > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201) > at > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282) > at > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1332) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:477) > at > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) > at > > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) > at > > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) > at > > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) > at > > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965) > at > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) > at > > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) > at > > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) > at > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) > at org.eclipse.jetty.server.Server.handle(Server.java:348) > at > > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452) > at > > org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:884) > at > > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:938) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630) > at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230) > at > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606) > at > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603) > at > > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538) > at java.lang.Thread.run(Thread.java:662) > > > > > The > > org.univ.amemet.services.ldap.ILdapComposanteDaoImpl.getUFRs(ILdapComposanteDaoImpl.java:211) > show me that the bean* ldapTemplate is null.* > > > Any help will be appreciate. > > Thanks. > > > > > > > > > > > > > -- > View this message in context: > http://apache-wicket.1842946.n4.nabble.com/Wicket-integration-with-Spring-ldap-tp4662097.html > Sent from the Users forum mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >