Note that there are some explanatory texts on larger screens.

plurals
  1. POWicket-atmosphere EventBus.post causes NullPointerException at ServletWebRequest.getContextRelativeUrl()
    text
    copied!<p>I made a wicket-atmosphere webapp via maven and it works. If i create a new webapp without maven and i copy all of dependencies as jars, it doesn't work anymore.</p> <p>in onClick of AjaxLink i call EventBus.get().post() and it causes NullPoiinterException. You can read full stacktrace below. What did i just miss?</p> <pre><code>public void onClick(AjaxRequestTarget art){ EventBus.get().post( message = getRandomText() ); } </code></pre> <p>jars:</p> <pre><code>javax.servlet-api-3.0.1.jar slf4j-simple-1.6.4.jar slf4j-api-1.6.4.jar wicket-core-6.9.0.jar wicket-request-6.9.0.jar wicket-util-6.9.0.jar wicket-atmosphere-0.10.jar atmosphere-compat-jbossweb-1.0.8.jar atmosphere-compat-tomcat-1.0.8.jar atmosphere-compat-tomcat7-1.0.8.jar atmosphere-runtime-1.0.8.jar guava-11.0.0.jar jsr305-1.3.9.jar </code></pre> <p>My xmls:</p> <p>META-INF/context.xml</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;Context&gt; &lt;!-- &lt;Loader className="org.atmosphere.util.AtmosphereClassloader"/&gt; --&gt; &lt;Loader delegate="true"/&gt; &lt;/Context&gt; </code></pre> <p>META-INF/atmosphere.xml</p> <pre><code>&lt;atmosphere-handlers&gt; &lt;atmosphere-handler context-root="/*" class-name="org.atmosphere.handler.ReflectorServletProcessor"&gt; &lt;property name="filterClassName" value="com.myapp.wicket.DebugWicketFilter" /&gt; &lt;/atmosphere-handler&gt; &lt;/atmosphere-handlers&gt; </code></pre> <p>WEB-INF/web.xml:</p> <pre><code> &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; &lt;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_3_0.xsd" version="3.0"&gt; &lt;display-name&gt;myproject&lt;/display-name&gt; &lt;servlet&gt; &lt;description&gt;Atmospherefilter&lt;/description&gt; &lt;servlet-name&gt;Atmospherefilter&lt;/servlet-name&gt; &lt;servlet-class&gt;org.atmosphere.cpr.AtmosphereServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;applicationClassName&lt;/param-name&gt; &lt;param-value&gt;com.myapp.wicket.Application&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;configuration&lt;/param-name&gt; &lt;param-value&gt;development&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;org.atmosphere.useWebSocket&lt;/param-name&gt; &lt;param-value&gt;false&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;org.atmosphere.useNative&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;org.atmosphere.cpr.CometSupport.maxInactiveActivity&lt;/param-name&gt; &lt;param-value&gt;30000&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;filterMappingUrlPattern&lt;/param-name&gt; &lt;param-value&gt;/*&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;org.atmosphere.websocket.WebSocketProtocol&lt;/param-name&gt; &lt;param-value&gt;org.atmosphere.websocket.protocol.EchoProtocol&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;org.atmosphere.cpr.broadcastFilterClasses&lt;/param-name&gt; &lt;param-value&gt;org.apache.wicket.atmosphere.TrackMessageSizeFilter&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;0&lt;/load-on-startup&gt; &lt;async-supported&gt;true&lt;/async-supported&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;Atmospherefilter&lt;/servlet-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;/web-app&gt; </code></pre> <p>WEB-INF/beans.xml</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans 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/beans_1_0.xsd"&gt; &lt;/beans&gt; </code></pre> <p>WEB-INF/glassfish-web.xml</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"&gt; &lt;glassfish-web-app error-url=""&gt; &lt;parameter-encoding default-charset="UTF-8"/&gt; &lt;class-loader delegate="true"/&gt; &lt;/glassfish-web-app&gt; </code></pre> <p>com/myapp/wicket/DebugWicketFilter.java</p> <pre><code>public class DebugWicketFilter extends WicketFilter { private static final Logger log = LoggerFactory.getLogger(DebugWicketFilter.class); @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { log.info("URI: " + request.toString()); super.doFilter(request, response, chain); } } </code></pre> <p>Full stacktrace: </p> <pre><code>WicketMessage: Method onRequest of interface org.apache.wicket.behavior.IBehaviorListener targeted at org.apache.wicket.ajax.markup.html.AjaxLink$1@32048 on component [AjaxLink [Component id = link]] threw an exception java.lang.NullPointerException at org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:194) at org.apache.wicket.protocol.http.servlet.ServletWebRequest.&lt;init&gt;(ServletWebRequest.java:113) at org.apache.wicket.protocol.http.servlet.ServletWebRequest.&lt;init&gt;(ServletWebRequest.java:83) at org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:448) at org.apache.wicket.atmosphere.EventBus.post(EventBus.java:318) at org.apache.wicket.atmosphere.EventBus.postToSingleResource(EventBus.java:298) at org.apache.wicket.atmosphere.EventBus.post(EventBus.java:273) at com.myapp.wicket.HomePage$1.onClick(HomePage.java:28) at org.apache.wicket.ajax.markup.html.AjaxLink$1.onEvent(AjaxLink.java:86) at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:123) at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:626) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241) at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:247) at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:226) 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 com.myapp.wicket.DebugWicketFilter.doFilter(DebugWicketFilter.java:34) at org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.java:155) at org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilterChain.java:132) at org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper.service(ReflectorServletProcessor.java:314) at org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServletProcessor.java:172) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:256) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:166) at org.atmosphere.container.GrizzlyCometSupport.service(GrizzlyCometSupport.java:119) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1307) at org.atmosphere.cpr.AtmosphereServlet.doPost(AtmosphereServlet.java:293) at org.atmosphere.cpr.AtmosphereServlet.doGet(AtmosphereServlet.java:279) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload