You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by smallufo <sm...@gmail.com> on 2010/07/21 17:07:01 UTC

[wicketstuff-push] NPE when CometdService.initBayeux()

Hi , I am trying Wicketstuff-push with a small chat program , but encounter
this problem :

org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of
interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at
component [MarkupContainer [Component id = sayForm]] threw an exception
        at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:193)
        at
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:73)
        at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
        at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
        at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
        at
org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:160)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:158)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:96)
        at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109)
        at
destiny.webapp.filters.FilterUserAgent.doFilter(FilterUserAgent.java:29)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88)
        at
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88)
        at
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88)
        at
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
        at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183)
        at
com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:789)
        at
com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:660)
        at
com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:624)
        at
com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:575)
        at
com.caucho.network.listen.TcpSocketLink$AcceptTask.doTask(TcpSocketLink.java:1183)
        at
com.caucho.network.listen.TcpSocketLink$ConnectionReadTask.runThread(TcpSocketLink.java:1118)
        at
com.caucho.network.listen.TcpSocketLink$AcceptTask.run(TcpSocketLink.java:1150)
        at
com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901)
        at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866)
Caused by: java.lang.reflect.InvocationTargetException
        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.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
        ... 34 more
Caused by: java.lang.NullPointerException
        at
org.wicketstuff.push.cometd.CometdService.initBayeux(CometdService.java:184)
        at
org.wicketstuff.push.cometd.CometdService.getBayeux(CometdService.java:161)
        at
org.wicketstuff.push.cometd.CometdService.publish(CometdService.java:155)
        at
destiny.wicket.chatroom.ChatPanel$SayForm.onSubmit(ChatPanel.java:603)
        at
org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1538)
        at org.apache.wicket.markup.html.form.Form.process(Form.java:934)
        at
org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:896)
        ... 39 more

After tracing some code , it seems _bayeux cannot be initialized in
 CometdService.initBayeux() ,
and that's because it cannot find an attribute "org.cometd.bayeux" in
ServletContext.
But I didn't find any code that setAttribute("org.cometd.bayeux" ,
something) in ContinuationCometdServlet

Did I miss anything ?


Here is my configurations :

web.xml :
    <servlet>
        <servlet-name>cometd</servlet-name>

 <servlet-class>org.mortbay.cometd.continuation.ContinuationCometdServlet</servlet-class>
        <init-param>
            <param-name>timeout</param-name>
            <param-value>60000</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>cometd</servlet-name>
        <url-pattern>/cometd/*</url-pattern>
    </servlet-mapping>


lib/ :
wicket-1.4.9.jar
push-1.4.7.jar
cometd-api-1.1.1.jar
cometd-server-6.1.22.jar

servlet-container : resin 4.0.7