Hello,
I do my first steps using Apache Wicket and would like to test the WebSocket feature. However, I fail to get anything compiled and deployed. Wicket by itself seems to work (i,e. "message" in Index.html is replaced successfully). I am using Jetty 9.0.0M3 and Wicket 6.6.0. Here are my "files". I think it has to do something with the location of the WebSocketCreator class and that it moved from the package "org.eclipse.jetty.websocket.server" in Jetty 9.0.0M2 to "org.eclipse.jetty.websocket.servlet" in Jetty 9.0.0M3 my/Index.html: <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>Insert title here</title></head> <body>Blabla...<span wicket:id="message">Message would be here</span></body> </html> my/Index.java: import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.protocol.ws.api.WebSocketBehavior; public final class Index extends WebPage { public Index() { add(new Label("message", "Hallo Welt!")); add(new WebSocketBehavior() {}); } } my/app.java: public class app extends WebApplication { @Override public Class<? extends Page> getHomePage() { return Index.class; } } web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd <http://java.sun.com/xml/ns/javaee%20http:/java.sun.com/xml/ns/javaee/web-ap p_3_0.xsd> " id="WebApp_ID" version="3.0"> <display-name>Aspiration for Ascension - Web Application</display-name> <context-param> <param-name>configuration</param-name> <param-value>development</param-value> </context-param> <filter> <filter-name>myapp</filter-name> <filter-class>org.apache.wicket.protocol.ws.jetty9.Jetty9WebSocketFilter</fi lter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>my.app</param-value> </init-param> </filter> <filter-mapping> <filter-name>myapp</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd <http://maven.apache.org/POM/4.0.0%20http:/maven.apache.org/maven-v4_0_0.xsd > "> <modelVersion>4.0.0</modelVersion> <groupId>my</groupId> <artifactId>app</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <build> <finalName>app</finalName> </build> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>1.7.2</version> </dependency> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-core</artifactId> <version>6.6.0</version> </dependency> <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-native-websocket-jetty9</artifactId> <version>0.7</version> </dependency> </dependencies> </project> And here is the output when running Jetty: Running Jetty 9.0.0.M3 ParentLoaderPriority enabled Enable config class:runjettyrun.webapp.RJRWebInfConfiguration Enable config class:org.eclipse.jetty.webapp.WebXmlConfiguration Enable config class:runjettyrun.webapp.RJRMetaInfoConfiguration Enable config class:org.eclipse.jetty.webapp.FragmentConfiguration Enable config class:runjettyrun.annotation.RJRAnnotationConfiguration Enable config class:org.eclipse.jetty.webapp.JettyWebXmlConfiguration Enable config class:org.eclipse.jetty.webapp.TagLibConfiguration ProjectClassLoader: entry=D:\eclipse\workspace\my\target\classes ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\wicket-util-6.6.0.jar ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\wicket-request-6.6.0.jar ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\wicket-core-6.6.0.jar ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\slf4j-jdk14-1.7.2.jar ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\slf4j-api-1.7.2.jar ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\wicket-native-websocket- jetty9-0.7.jar ProjectClassLoader: entry=D:\eclipse\workspace\my\target\My\WEB-INF\lib\wicket-native-websocket- core-0.7.jar 2013-03-05 10:12:48.858:INFO:oejs.Server:main: jetty-9.0.0.M3 2013-03-05 10:12:49.949:WARN:oejuc.AbstractLifeCycle:main: FAILED My: java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413) at java.lang.Class.getConstructor0(Class.java:2723) at java.lang.Class.newInstance0(Class.java:345) at java.lang.Class.newInstance(Class.java:327) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createFilter(Servlet ContextHandler.java:1067) at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:103) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:739) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextH andler.java:279) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1320) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java: 706) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:485) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle .java:108) at org.eclipse.jetty.server.Server.start(Server.java:307) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:90) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.jav a:58) at org.eclipse.jetty.server.Server.doStart(Server.java:274) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at runjettyrun.Bootstrap.main(Bootstrap.java:80) 2013-03-05 10:12:49.950:WARN:oejuc.AbstractLifeCycle:main: FAILED o.e.j.w.WebAppContext@1ee4296{/,[file:/D:/eclipse/workspace/My/target/My/],S TARTING} <mailto:o.e.j.w.WebAppContext@1ee4296%7b/,%5bfile:/D:/eclipse/workspace/My/t arget/My/%5d,STARTING%7d> : java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413) at java.lang.Class.getConstructor0(Class.java:2723) at java.lang.Class.newInstance0(Class.java:345) at java.lang.Class.newInstance(Class.java:327) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createFilter(Servlet ContextHandler.java:1067) at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:103) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:739) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextH andler.java:279) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1320) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java: 706) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:485) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle .java:108) at org.eclipse.jetty.server.Server.start(Server.java:307) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:90) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.jav a:58) at org.eclipse.jetty.server.Server.doStart(Server.java:274) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at runjettyrun.Bootstrap.main(Bootstrap.java:80) 2013-03-05 10:12:49.951:WARN:oejuc.AbstractLifeCycle:main: FAILED org.eclipse.jetty.server.Server@155b814: java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413) at java.lang.Class.getConstructor0(Class.java:2723) at java.lang.Class.newInstance0(Class.java:345) at java.lang.Class.newInstance(Class.java:327) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createFilter(Servlet ContextHandler.java:1067) at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:103) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:739) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextH andler.java:279) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1320) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java: 706) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:485) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle .java:108) at org.eclipse.jetty.server.Server.start(Server.java:307) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:90) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.jav a:58) at org.eclipse.jetty.server.Server.doStart(Server.java:274) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at runjettyrun.Bootstrap.main(Bootstrap.java:80) Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/WebSocketCreator at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413) at java.lang.Class.getConstructor0(Class.java:2723) at java.lang.Class.newInstance0(Class.java:345) at java.lang.Class.newInstance(Class.java:327) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createFilter(Servlet ContextHandler.java:1067) at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:103) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:739) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextH andler.java:279) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1320) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java: 706) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:485) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle .java:108) at org.eclipse.jetty.server.Server.start(Server.java:307) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:90) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.jav a:58) at org.eclipse.jetty.server.Server.doStart(Server.java:274) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:69) at runjettyrun.Bootstrap.main(Bootstrap.java:80)