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)