You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Adam Hammer <ad...@gmail.com> on 2014/12/10 10:01:33 UTC
Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Hi Wicket Group Members.
Anyone have this, I can't seem to get websocket to connect Wicket7.0.0m4, I
suspect my problem is something with dependencies with jetty 9.3+?
The behavior is injected properly, however in the Javascript console in the
client I have the following.
Firefox can't establish a connection to the server at
ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
My build.gradle dependencies
------- Begin Build.gradle dependencies
dependencies {
compile 'org.apache.wicket:wicket-core:7.+'
compile 'org.apache.wicket:wicket-extensions:7.+'
compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
compile 'javax.websocket:javax.websocket-api:1.1'
compile 'org.reflections:reflections-maven:0.9.9-RC1'
compile 'org.apache.httpcomponents:httpclient:4.+'
compile 'org.apache.commons:commons-exec:1.3'
compile 'org.apache.commons:commons-io:1.+'
compile 'org.apache.velocity:velocity:1.+'
compile 'com.google.inject:guice:3.+'
compile 'com.google.guava:guava:+'
compile 'com.google.code.gson:gson:+'
compile 'org.hibernate:hibernate-core:3.+'
compile 'org.hibernate:hibernate-entitymanager:3.+'
compile 'com.h2database:h2:1.+'
compile 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
compile 'org.mockito:mockito-core:1.+'
compile 'org.slf4j:slf4j-log4j12:1.+'
compile 'log4j:log4j:1.+'
compile 'net.lingala.zip4j:zip4j:1.+'
compile 'net.glxn:qrgen:+'
compile 'org.bitcoinj:bitcoinj-core:+'
compile 'commons-io:commons-io:2.4'
compile 'commons-daemon:commons-daemon:1.0.15'
compile 'javax.mail:mail:1.4.1'
testCompile 'junit:junit:4.10'
}
------- Web.xml filter
<filter>
<filter-name>simple</filter-name>
<filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.metalrain.simple.SimpleImpl</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>simple</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
---- Java Code (Just a websocket behavior, with breakpoints all around,
they don't trigger)
add(new WebSocketBehavior() {
@Override
public void onEvent(Component component, IEvent<?> event) {
super.onEvent(component, event);
}
@Override
protected void onConnect(ConnectedMessage message) {
super.onConnect(message);
}
@Override
protected void onPush(WebSocketRequestHandler handler,
IWebSocketPushMessage message) {
super.onPush(handler, message);
}
@Override
protected void onClose(ClosedMessage message) {
super.onClose(message);
}
@Override
protected void onMessage(WebSocketRequestHandler handler,
TextMessage message) {
super.onMessage(handler, message);
}
@Override
protected void onMessage(WebSocketRequestHandler handler,
BinaryMessage binaryMessage) {
super.onMessage(handler, binaryMessage);
}
});
-------- End Java
Thanks in advance,
Adam Hammer
Re: Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Posted by Martin Grigorov <mg...@apache.org>.
Welcome !
Please file a ticket about the problem with RedirectPage.
With a quickstart would be the best!
I don't quite understand the issue from the description below.
Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov
On Wed, Dec 10, 2014 at 10:25 PM, Adam Hammer <ad...@gmail.com> wrote:
> Thank you for that, Looks like everything is working in regards to
> Websockets.
>
> Speaking of constructors, RedirectPage() might need a public no-args
> constructor. Since wicket 7 it doesn't work with IFrame properly. I
> switched to WebMarkupContainer with a Attribute Modifier to get around, but
> not serializable.
>
> Thanks again for your help in this matter. I hope to share my Wicket based
> project with the group soon! I've been building a CMS/Platform on top of it
> since Wicket 5.
>
> Sincerely,
> Adam Hammer
>
>
> On Wed, Dec 10, 2014 at 5:30 AM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > On Wed, Dec 10, 2014 at 3:23 PM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >
> > > The problem is that with your code Jetty won't scan
> > > for javax.websocket.server.ServerApplicationConfig's in the classpath.
> > > So org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig is
> > > not used at all.
> > >
> > > Here is a trick that I've just did to make my websocket demo work in
> > > embedded Jetty:
> > >
> > > Create a class :
> > >
> > > package org.apache.wicket.protocol.ws.javax;
> > >
> > > public class MyEndpointConfig extends WicketServerEndpointConfig
> > > {
> > > }
> > >
> > > You need to do that because WicketServerEndpointConfig has package
> > private
> > > visibility. (I'll make it public for the next release)
> > >
> >
> > https://issues.apache.org/jira/browse/WICKET-5789
> >
> >
> > >
> > > Then do:
> > > wscontainer.addEndpoint(new MyEndpointConfig());
> > >
> > > Voila!
> > >
> > > If you find a way to tell Jetty to do a proper scan in embedded mode
> then
> > > please share it with me!
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > > https://twitter.com/mtgrigorov
> > >
> > > On Wed, Dec 10, 2014 at 1:19 PM, Adam Hammer <ad...@gmail.com>
> > > wrote:
> > >
> > >> Neither of those break, at the WebSocket parts.
> > >>
> > >> It's embedded jetty 9.3
> > >>
> > >> server = new Server(Simple.getPort());
> > >> WebAppContext bb = new WebAppContext();
> > >> bb.setServer(server);
> > >> bb.setContextPath("/");
> > >> bb.setWar("src/main/webapp");
> > >>
> > >>
> > >> // START JMX SERVER
> > >> // MBeanServer mBeanServer =
> > >> ManagementFactory.getPlatformMBeanServer();
> > >> // MBeanContainer mBeanContainer = new
> > >> MBeanContainer(mBeanServer);
> > >> // server.getContainer().addEventListener(mBeanContainer);
> > >> // mBeanContainer.start();
> > >>
> > >> server.setHandler(bb);
> > >>
> > >> try {
> > >> ServerContainer wscontainer =
> > >> WebSocketServerContainerInitializer.configureContext(bb);
> > >> wscontainer.addEndpoint(EventSocket.class);
> > >> server.start();
> > >> } catch (Exception e) {
> > >> System.out.println(Simple.getPort());
> > >> e.printStackTrace();
> > >> System.exit(1);
> > >> }
> > >>
> > >> I put the EventSocket.class in my code to listen to callbacks on
> Jetty's
> > >> side, nothing is triggered in it either.
> > >>
> > >> Thanks for any help,
> > >> Adam
> > >>
> > >> On Wed, Dec 10, 2014 at 1:17 AM, Martin Grigorov <
> mgrigorov@apache.org>
> > >> wrote:
> > >>
> > >> > Hi,
> > >> >
> > >> > The dependencies look good.
> > >> > The ws:/ url also looks good.
> > >> > It seems the Endpoint is not registered though.
> > >> > How do you start the application ? Do you deploy in standalone Jetty
> > or
> > >> do
> > >> > you use embedded Jetty ?
> > >> > Put a breakpoint
> > >> > at org.apache.wicket.protocol.ws.javax.WicketEndpoint#onOpen() and
> > >> > at
> > >> >
> > >>
> >
> org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig#getEndpointConfigs().
> > >> > Is any of them called ?
> > >> >
> > >> > Martin Grigorov
> > >> > Wicket Training and Consulting
> > >> > https://twitter.com/mtgrigorov
> > >> >
> > >> > On Wed, Dec 10, 2014 at 11:01 AM, Adam Hammer <
> adamhammer2@gmail.com>
> > >> > wrote:
> > >> >
> > >> > > Hi Wicket Group Members.
> > >> > >
> > >> > > Anyone have this, I can't seem to get websocket to connect
> > >> > Wicket7.0.0m4, I
> > >> > > suspect my problem is something with dependencies with jetty 9.3+?
> > >> > >
> > >> > > The behavior is injected properly, however in the Javascript
> console
> > >> in
> > >> > the
> > >> > > client I have the following.
> > >> > >
> > >> > > Firefox can't establish a connection to the server at
> > >> > >
> > >> > >
> > >> >
> > >>
> >
> ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
> > >> > >
> > >> > > My build.gradle dependencies
> > >> > >
> > >> > > ------- Begin Build.gradle dependencies
> > >> > > dependencies {
> > >> > > compile 'org.apache.wicket:wicket-core:7.+'
> > >> > > compile 'org.apache.wicket:wicket-extensions:7.+'
> > >> > > compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
> > >> > > compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
> > >> > > compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
> > >> > > compile 'javax.websocket:javax.websocket-api:1.1'
> > >> > > compile 'org.reflections:reflections-maven:0.9.9-RC1'
> > >> > > compile 'org.apache.httpcomponents:httpclient:4.+'
> > >> > > compile 'org.apache.commons:commons-exec:1.3'
> > >> > > compile 'org.apache.commons:commons-io:1.+'
> > >> > > compile 'org.apache.velocity:velocity:1.+'
> > >> > > compile 'com.google.inject:guice:3.+'
> > >> > > compile 'com.google.guava:guava:+'
> > >> > > compile 'com.google.code.gson:gson:+'
> > >> > > compile 'org.hibernate:hibernate-core:3.+'
> > >> > > compile 'org.hibernate:hibernate-entitymanager:3.+'
> > >> > > compile 'com.h2database:h2:1.+'
> > >> > > compile
> > 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
> > >> > > compile 'org.mockito:mockito-core:1.+'
> > >> > > compile 'org.slf4j:slf4j-log4j12:1.+'
> > >> > > compile 'log4j:log4j:1.+'
> > >> > > compile 'net.lingala.zip4j:zip4j:1.+'
> > >> > > compile 'net.glxn:qrgen:+'
> > >> > > compile 'org.bitcoinj:bitcoinj-core:+'
> > >> > > compile 'commons-io:commons-io:2.4'
> > >> > > compile 'commons-daemon:commons-daemon:1.0.15'
> > >> > > compile 'javax.mail:mail:1.4.1'
> > >> > >
> > >> > > testCompile 'junit:junit:4.10'
> > >> > > }
> > >> > > ------- Web.xml filter
> > >> > > <filter>
> > >> > > <filter-name>simple</filter-name>
> > >> > >
> > >> > >
> > >> > >
> > >> >
> > >>
> >
> <filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
> > >> > > <init-param>
> > >> > > <param-name>applicationClassName</param-name>
> > >> > >
> > <param-value>com.metalrain.simple.SimpleImpl</param-value>
> > >> > > </init-param>
> > >> > > </filter>
> > >> > >
> > >> > > <filter-mapping>
> > >> > > <filter-name>simple</filter-name>
> > >> > > <url-pattern>/*</url-pattern>
> > >> > > </filter-mapping>
> > >> > >
> > >> > > ---- Java Code (Just a websocket behavior, with breakpoints all
> > >> around,
> > >> > > they don't trigger)
> > >> > > add(new WebSocketBehavior() {
> > >> > > @Override
> > >> > > public void onEvent(Component component, IEvent<?>
> > event)
> > >> {
> > >> > > super.onEvent(component, event);
> > >> > > }
> > >> > >
> > >> > > @Override
> > >> > > protected void onConnect(ConnectedMessage message) {
> > >> > > super.onConnect(message);
> > >> > > }
> > >> > >
> > >> > > @Override
> > >> > > protected void onPush(WebSocketRequestHandler handler,
> > >> > > IWebSocketPushMessage message) {
> > >> > > super.onPush(handler, message);
> > >> > > }
> > >> > >
> > >> > > @Override
> > >> > > protected void onClose(ClosedMessage message) {
> > >> > > super.onClose(message);
> > >> > > }
> > >> > >
> > >> > > @Override
> > >> > > protected void onMessage(WebSocketRequestHandler
> > handler,
> > >> > > TextMessage message) {
> > >> > > super.onMessage(handler, message);
> > >> > > }
> > >> > >
> > >> > > @Override
> > >> > > protected void onMessage(WebSocketRequestHandler
> > handler,
> > >> > > BinaryMessage binaryMessage) {
> > >> > > super.onMessage(handler, binaryMessage);
> > >> > > }
> > >> > > });
> > >> > > -------- End Java
> > >> > >
> > >> > >
> > >> > > Thanks in advance,
> > >> > > Adam Hammer
> > >> > >
> > >> >
> > >>
> > >
> > >
> >
>
Re: Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Posted by Adam Hammer <ad...@gmail.com>.
Thank you for that, Looks like everything is working in regards to
Websockets.
Speaking of constructors, RedirectPage() might need a public no-args
constructor. Since wicket 7 it doesn't work with IFrame properly. I
switched to WebMarkupContainer with a Attribute Modifier to get around, but
not serializable.
Thanks again for your help in this matter. I hope to share my Wicket based
project with the group soon! I've been building a CMS/Platform on top of it
since Wicket 5.
Sincerely,
Adam Hammer
On Wed, Dec 10, 2014 at 5:30 AM, Martin Grigorov <mg...@apache.org>
wrote:
> On Wed, Dec 10, 2014 at 3:23 PM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > The problem is that with your code Jetty won't scan
> > for javax.websocket.server.ServerApplicationConfig's in the classpath.
> > So org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig is
> > not used at all.
> >
> > Here is a trick that I've just did to make my websocket demo work in
> > embedded Jetty:
> >
> > Create a class :
> >
> > package org.apache.wicket.protocol.ws.javax;
> >
> > public class MyEndpointConfig extends WicketServerEndpointConfig
> > {
> > }
> >
> > You need to do that because WicketServerEndpointConfig has package
> private
> > visibility. (I'll make it public for the next release)
> >
>
> https://issues.apache.org/jira/browse/WICKET-5789
>
>
> >
> > Then do:
> > wscontainer.addEndpoint(new MyEndpointConfig());
> >
> > Voila!
> >
> > If you find a way to tell Jetty to do a proper scan in embedded mode then
> > please share it with me!
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Wed, Dec 10, 2014 at 1:19 PM, Adam Hammer <ad...@gmail.com>
> > wrote:
> >
> >> Neither of those break, at the WebSocket parts.
> >>
> >> It's embedded jetty 9.3
> >>
> >> server = new Server(Simple.getPort());
> >> WebAppContext bb = new WebAppContext();
> >> bb.setServer(server);
> >> bb.setContextPath("/");
> >> bb.setWar("src/main/webapp");
> >>
> >>
> >> // START JMX SERVER
> >> // MBeanServer mBeanServer =
> >> ManagementFactory.getPlatformMBeanServer();
> >> // MBeanContainer mBeanContainer = new
> >> MBeanContainer(mBeanServer);
> >> // server.getContainer().addEventListener(mBeanContainer);
> >> // mBeanContainer.start();
> >>
> >> server.setHandler(bb);
> >>
> >> try {
> >> ServerContainer wscontainer =
> >> WebSocketServerContainerInitializer.configureContext(bb);
> >> wscontainer.addEndpoint(EventSocket.class);
> >> server.start();
> >> } catch (Exception e) {
> >> System.out.println(Simple.getPort());
> >> e.printStackTrace();
> >> System.exit(1);
> >> }
> >>
> >> I put the EventSocket.class in my code to listen to callbacks on Jetty's
> >> side, nothing is triggered in it either.
> >>
> >> Thanks for any help,
> >> Adam
> >>
> >> On Wed, Dec 10, 2014 at 1:17 AM, Martin Grigorov <mg...@apache.org>
> >> wrote:
> >>
> >> > Hi,
> >> >
> >> > The dependencies look good.
> >> > The ws:/ url also looks good.
> >> > It seems the Endpoint is not registered though.
> >> > How do you start the application ? Do you deploy in standalone Jetty
> or
> >> do
> >> > you use embedded Jetty ?
> >> > Put a breakpoint
> >> > at org.apache.wicket.protocol.ws.javax.WicketEndpoint#onOpen() and
> >> > at
> >> >
> >>
> org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig#getEndpointConfigs().
> >> > Is any of them called ?
> >> >
> >> > Martin Grigorov
> >> > Wicket Training and Consulting
> >> > https://twitter.com/mtgrigorov
> >> >
> >> > On Wed, Dec 10, 2014 at 11:01 AM, Adam Hammer <ad...@gmail.com>
> >> > wrote:
> >> >
> >> > > Hi Wicket Group Members.
> >> > >
> >> > > Anyone have this, I can't seem to get websocket to connect
> >> > Wicket7.0.0m4, I
> >> > > suspect my problem is something with dependencies with jetty 9.3+?
> >> > >
> >> > > The behavior is injected properly, however in the Javascript console
> >> in
> >> > the
> >> > > client I have the following.
> >> > >
> >> > > Firefox can't establish a connection to the server at
> >> > >
> >> > >
> >> >
> >>
> ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
> >> > >
> >> > > My build.gradle dependencies
> >> > >
> >> > > ------- Begin Build.gradle dependencies
> >> > > dependencies {
> >> > > compile 'org.apache.wicket:wicket-core:7.+'
> >> > > compile 'org.apache.wicket:wicket-extensions:7.+'
> >> > > compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
> >> > > compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
> >> > > compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
> >> > > compile 'javax.websocket:javax.websocket-api:1.1'
> >> > > compile 'org.reflections:reflections-maven:0.9.9-RC1'
> >> > > compile 'org.apache.httpcomponents:httpclient:4.+'
> >> > > compile 'org.apache.commons:commons-exec:1.3'
> >> > > compile 'org.apache.commons:commons-io:1.+'
> >> > > compile 'org.apache.velocity:velocity:1.+'
> >> > > compile 'com.google.inject:guice:3.+'
> >> > > compile 'com.google.guava:guava:+'
> >> > > compile 'com.google.code.gson:gson:+'
> >> > > compile 'org.hibernate:hibernate-core:3.+'
> >> > > compile 'org.hibernate:hibernate-entitymanager:3.+'
> >> > > compile 'com.h2database:h2:1.+'
> >> > > compile
> 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
> >> > > compile 'org.mockito:mockito-core:1.+'
> >> > > compile 'org.slf4j:slf4j-log4j12:1.+'
> >> > > compile 'log4j:log4j:1.+'
> >> > > compile 'net.lingala.zip4j:zip4j:1.+'
> >> > > compile 'net.glxn:qrgen:+'
> >> > > compile 'org.bitcoinj:bitcoinj-core:+'
> >> > > compile 'commons-io:commons-io:2.4'
> >> > > compile 'commons-daemon:commons-daemon:1.0.15'
> >> > > compile 'javax.mail:mail:1.4.1'
> >> > >
> >> > > testCompile 'junit:junit:4.10'
> >> > > }
> >> > > ------- Web.xml filter
> >> > > <filter>
> >> > > <filter-name>simple</filter-name>
> >> > >
> >> > >
> >> > >
> >> >
> >>
> <filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
> >> > > <init-param>
> >> > > <param-name>applicationClassName</param-name>
> >> > >
> <param-value>com.metalrain.simple.SimpleImpl</param-value>
> >> > > </init-param>
> >> > > </filter>
> >> > >
> >> > > <filter-mapping>
> >> > > <filter-name>simple</filter-name>
> >> > > <url-pattern>/*</url-pattern>
> >> > > </filter-mapping>
> >> > >
> >> > > ---- Java Code (Just a websocket behavior, with breakpoints all
> >> around,
> >> > > they don't trigger)
> >> > > add(new WebSocketBehavior() {
> >> > > @Override
> >> > > public void onEvent(Component component, IEvent<?>
> event)
> >> {
> >> > > super.onEvent(component, event);
> >> > > }
> >> > >
> >> > > @Override
> >> > > protected void onConnect(ConnectedMessage message) {
> >> > > super.onConnect(message);
> >> > > }
> >> > >
> >> > > @Override
> >> > > protected void onPush(WebSocketRequestHandler handler,
> >> > > IWebSocketPushMessage message) {
> >> > > super.onPush(handler, message);
> >> > > }
> >> > >
> >> > > @Override
> >> > > protected void onClose(ClosedMessage message) {
> >> > > super.onClose(message);
> >> > > }
> >> > >
> >> > > @Override
> >> > > protected void onMessage(WebSocketRequestHandler
> handler,
> >> > > TextMessage message) {
> >> > > super.onMessage(handler, message);
> >> > > }
> >> > >
> >> > > @Override
> >> > > protected void onMessage(WebSocketRequestHandler
> handler,
> >> > > BinaryMessage binaryMessage) {
> >> > > super.onMessage(handler, binaryMessage);
> >> > > }
> >> > > });
> >> > > -------- End Java
> >> > >
> >> > >
> >> > > Thanks in advance,
> >> > > Adam Hammer
> >> > >
> >> >
> >>
> >
> >
>
Re: Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Posted by Martin Grigorov <mg...@apache.org>.
On Wed, Dec 10, 2014 at 3:23 PM, Martin Grigorov <mg...@apache.org>
wrote:
> The problem is that with your code Jetty won't scan
> for javax.websocket.server.ServerApplicationConfig's in the classpath.
> So org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig is
> not used at all.
>
> Here is a trick that I've just did to make my websocket demo work in
> embedded Jetty:
>
> Create a class :
>
> package org.apache.wicket.protocol.ws.javax;
>
> public class MyEndpointConfig extends WicketServerEndpointConfig
> {
> }
>
> You need to do that because WicketServerEndpointConfig has package private
> visibility. (I'll make it public for the next release)
>
https://issues.apache.org/jira/browse/WICKET-5789
>
> Then do:
> wscontainer.addEndpoint(new MyEndpointConfig());
>
> Voila!
>
> If you find a way to tell Jetty to do a proper scan in embedded mode then
> please share it with me!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Dec 10, 2014 at 1:19 PM, Adam Hammer <ad...@gmail.com>
> wrote:
>
>> Neither of those break, at the WebSocket parts.
>>
>> It's embedded jetty 9.3
>>
>> server = new Server(Simple.getPort());
>> WebAppContext bb = new WebAppContext();
>> bb.setServer(server);
>> bb.setContextPath("/");
>> bb.setWar("src/main/webapp");
>>
>>
>> // START JMX SERVER
>> // MBeanServer mBeanServer =
>> ManagementFactory.getPlatformMBeanServer();
>> // MBeanContainer mBeanContainer = new
>> MBeanContainer(mBeanServer);
>> // server.getContainer().addEventListener(mBeanContainer);
>> // mBeanContainer.start();
>>
>> server.setHandler(bb);
>>
>> try {
>> ServerContainer wscontainer =
>> WebSocketServerContainerInitializer.configureContext(bb);
>> wscontainer.addEndpoint(EventSocket.class);
>> server.start();
>> } catch (Exception e) {
>> System.out.println(Simple.getPort());
>> e.printStackTrace();
>> System.exit(1);
>> }
>>
>> I put the EventSocket.class in my code to listen to callbacks on Jetty's
>> side, nothing is triggered in it either.
>>
>> Thanks for any help,
>> Adam
>>
>> On Wed, Dec 10, 2014 at 1:17 AM, Martin Grigorov <mg...@apache.org>
>> wrote:
>>
>> > Hi,
>> >
>> > The dependencies look good.
>> > The ws:/ url also looks good.
>> > It seems the Endpoint is not registered though.
>> > How do you start the application ? Do you deploy in standalone Jetty or
>> do
>> > you use embedded Jetty ?
>> > Put a breakpoint
>> > at org.apache.wicket.protocol.ws.javax.WicketEndpoint#onOpen() and
>> > at
>> >
>> org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig#getEndpointConfigs().
>> > Is any of them called ?
>> >
>> > Martin Grigorov
>> > Wicket Training and Consulting
>> > https://twitter.com/mtgrigorov
>> >
>> > On Wed, Dec 10, 2014 at 11:01 AM, Adam Hammer <ad...@gmail.com>
>> > wrote:
>> >
>> > > Hi Wicket Group Members.
>> > >
>> > > Anyone have this, I can't seem to get websocket to connect
>> > Wicket7.0.0m4, I
>> > > suspect my problem is something with dependencies with jetty 9.3+?
>> > >
>> > > The behavior is injected properly, however in the Javascript console
>> in
>> > the
>> > > client I have the following.
>> > >
>> > > Firefox can't establish a connection to the server at
>> > >
>> > >
>> >
>> ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
>> > >
>> > > My build.gradle dependencies
>> > >
>> > > ------- Begin Build.gradle dependencies
>> > > dependencies {
>> > > compile 'org.apache.wicket:wicket-core:7.+'
>> > > compile 'org.apache.wicket:wicket-extensions:7.+'
>> > > compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
>> > > compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
>> > > compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
>> > > compile 'javax.websocket:javax.websocket-api:1.1'
>> > > compile 'org.reflections:reflections-maven:0.9.9-RC1'
>> > > compile 'org.apache.httpcomponents:httpclient:4.+'
>> > > compile 'org.apache.commons:commons-exec:1.3'
>> > > compile 'org.apache.commons:commons-io:1.+'
>> > > compile 'org.apache.velocity:velocity:1.+'
>> > > compile 'com.google.inject:guice:3.+'
>> > > compile 'com.google.guava:guava:+'
>> > > compile 'com.google.code.gson:gson:+'
>> > > compile 'org.hibernate:hibernate-core:3.+'
>> > > compile 'org.hibernate:hibernate-entitymanager:3.+'
>> > > compile 'com.h2database:h2:1.+'
>> > > compile 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
>> > > compile 'org.mockito:mockito-core:1.+'
>> > > compile 'org.slf4j:slf4j-log4j12:1.+'
>> > > compile 'log4j:log4j:1.+'
>> > > compile 'net.lingala.zip4j:zip4j:1.+'
>> > > compile 'net.glxn:qrgen:+'
>> > > compile 'org.bitcoinj:bitcoinj-core:+'
>> > > compile 'commons-io:commons-io:2.4'
>> > > compile 'commons-daemon:commons-daemon:1.0.15'
>> > > compile 'javax.mail:mail:1.4.1'
>> > >
>> > > testCompile 'junit:junit:4.10'
>> > > }
>> > > ------- Web.xml filter
>> > > <filter>
>> > > <filter-name>simple</filter-name>
>> > >
>> > >
>> > >
>> >
>> <filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
>> > > <init-param>
>> > > <param-name>applicationClassName</param-name>
>> > > <param-value>com.metalrain.simple.SimpleImpl</param-value>
>> > > </init-param>
>> > > </filter>
>> > >
>> > > <filter-mapping>
>> > > <filter-name>simple</filter-name>
>> > > <url-pattern>/*</url-pattern>
>> > > </filter-mapping>
>> > >
>> > > ---- Java Code (Just a websocket behavior, with breakpoints all
>> around,
>> > > they don't trigger)
>> > > add(new WebSocketBehavior() {
>> > > @Override
>> > > public void onEvent(Component component, IEvent<?> event)
>> {
>> > > super.onEvent(component, event);
>> > > }
>> > >
>> > > @Override
>> > > protected void onConnect(ConnectedMessage message) {
>> > > super.onConnect(message);
>> > > }
>> > >
>> > > @Override
>> > > protected void onPush(WebSocketRequestHandler handler,
>> > > IWebSocketPushMessage message) {
>> > > super.onPush(handler, message);
>> > > }
>> > >
>> > > @Override
>> > > protected void onClose(ClosedMessage message) {
>> > > super.onClose(message);
>> > > }
>> > >
>> > > @Override
>> > > protected void onMessage(WebSocketRequestHandler handler,
>> > > TextMessage message) {
>> > > super.onMessage(handler, message);
>> > > }
>> > >
>> > > @Override
>> > > protected void onMessage(WebSocketRequestHandler handler,
>> > > BinaryMessage binaryMessage) {
>> > > super.onMessage(handler, binaryMessage);
>> > > }
>> > > });
>> > > -------- End Java
>> > >
>> > >
>> > > Thanks in advance,
>> > > Adam Hammer
>> > >
>> >
>>
>
>
Re: Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Posted by Martin Grigorov <mg...@apache.org>.
The problem is that with your code Jetty won't scan
for javax.websocket.server.ServerApplicationConfig's in the classpath.
So org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig is not
used at all.
Here is a trick that I've just did to make my websocket demo work in
embedded Jetty:
Create a class :
package org.apache.wicket.protocol.ws.javax;
public class MyEndpointConfig extends WicketServerEndpointConfig
{
}
You need to do that because WicketServerEndpointConfig has package private
visibility. (I'll make it public for the next release)
Then do:
wscontainer.addEndpoint(new MyEndpointConfig());
Voila!
If you find a way to tell Jetty to do a proper scan in embedded mode then
please share it with me!
Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov
On Wed, Dec 10, 2014 at 1:19 PM, Adam Hammer <ad...@gmail.com> wrote:
> Neither of those break, at the WebSocket parts.
>
> It's embedded jetty 9.3
>
> server = new Server(Simple.getPort());
> WebAppContext bb = new WebAppContext();
> bb.setServer(server);
> bb.setContextPath("/");
> bb.setWar("src/main/webapp");
>
>
> // START JMX SERVER
> // MBeanServer mBeanServer =
> ManagementFactory.getPlatformMBeanServer();
> // MBeanContainer mBeanContainer = new MBeanContainer(mBeanServer);
> // server.getContainer().addEventListener(mBeanContainer);
> // mBeanContainer.start();
>
> server.setHandler(bb);
>
> try {
> ServerContainer wscontainer =
> WebSocketServerContainerInitializer.configureContext(bb);
> wscontainer.addEndpoint(EventSocket.class);
> server.start();
> } catch (Exception e) {
> System.out.println(Simple.getPort());
> e.printStackTrace();
> System.exit(1);
> }
>
> I put the EventSocket.class in my code to listen to callbacks on Jetty's
> side, nothing is triggered in it either.
>
> Thanks for any help,
> Adam
>
> On Wed, Dec 10, 2014 at 1:17 AM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > Hi,
> >
> > The dependencies look good.
> > The ws:/ url also looks good.
> > It seems the Endpoint is not registered though.
> > How do you start the application ? Do you deploy in standalone Jetty or
> do
> > you use embedded Jetty ?
> > Put a breakpoint
> > at org.apache.wicket.protocol.ws.javax.WicketEndpoint#onOpen() and
> > at
> >
> org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig#getEndpointConfigs().
> > Is any of them called ?
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Wed, Dec 10, 2014 at 11:01 AM, Adam Hammer <ad...@gmail.com>
> > wrote:
> >
> > > Hi Wicket Group Members.
> > >
> > > Anyone have this, I can't seem to get websocket to connect
> > Wicket7.0.0m4, I
> > > suspect my problem is something with dependencies with jetty 9.3+?
> > >
> > > The behavior is injected properly, however in the Javascript console in
> > the
> > > client I have the following.
> > >
> > > Firefox can't establish a connection to the server at
> > >
> > >
> >
> ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
> > >
> > > My build.gradle dependencies
> > >
> > > ------- Begin Build.gradle dependencies
> > > dependencies {
> > > compile 'org.apache.wicket:wicket-core:7.+'
> > > compile 'org.apache.wicket:wicket-extensions:7.+'
> > > compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
> > > compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
> > > compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
> > > compile 'javax.websocket:javax.websocket-api:1.1'
> > > compile 'org.reflections:reflections-maven:0.9.9-RC1'
> > > compile 'org.apache.httpcomponents:httpclient:4.+'
> > > compile 'org.apache.commons:commons-exec:1.3'
> > > compile 'org.apache.commons:commons-io:1.+'
> > > compile 'org.apache.velocity:velocity:1.+'
> > > compile 'com.google.inject:guice:3.+'
> > > compile 'com.google.guava:guava:+'
> > > compile 'com.google.code.gson:gson:+'
> > > compile 'org.hibernate:hibernate-core:3.+'
> > > compile 'org.hibernate:hibernate-entitymanager:3.+'
> > > compile 'com.h2database:h2:1.+'
> > > compile 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
> > > compile 'org.mockito:mockito-core:1.+'
> > > compile 'org.slf4j:slf4j-log4j12:1.+'
> > > compile 'log4j:log4j:1.+'
> > > compile 'net.lingala.zip4j:zip4j:1.+'
> > > compile 'net.glxn:qrgen:+'
> > > compile 'org.bitcoinj:bitcoinj-core:+'
> > > compile 'commons-io:commons-io:2.4'
> > > compile 'commons-daemon:commons-daemon:1.0.15'
> > > compile 'javax.mail:mail:1.4.1'
> > >
> > > testCompile 'junit:junit:4.10'
> > > }
> > > ------- Web.xml filter
> > > <filter>
> > > <filter-name>simple</filter-name>
> > >
> > >
> > >
> >
> <filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
> > > <init-param>
> > > <param-name>applicationClassName</param-name>
> > > <param-value>com.metalrain.simple.SimpleImpl</param-value>
> > > </init-param>
> > > </filter>
> > >
> > > <filter-mapping>
> > > <filter-name>simple</filter-name>
> > > <url-pattern>/*</url-pattern>
> > > </filter-mapping>
> > >
> > > ---- Java Code (Just a websocket behavior, with breakpoints all around,
> > > they don't trigger)
> > > add(new WebSocketBehavior() {
> > > @Override
> > > public void onEvent(Component component, IEvent<?> event) {
> > > super.onEvent(component, event);
> > > }
> > >
> > > @Override
> > > protected void onConnect(ConnectedMessage message) {
> > > super.onConnect(message);
> > > }
> > >
> > > @Override
> > > protected void onPush(WebSocketRequestHandler handler,
> > > IWebSocketPushMessage message) {
> > > super.onPush(handler, message);
> > > }
> > >
> > > @Override
> > > protected void onClose(ClosedMessage message) {
> > > super.onClose(message);
> > > }
> > >
> > > @Override
> > > protected void onMessage(WebSocketRequestHandler handler,
> > > TextMessage message) {
> > > super.onMessage(handler, message);
> > > }
> > >
> > > @Override
> > > protected void onMessage(WebSocketRequestHandler handler,
> > > BinaryMessage binaryMessage) {
> > > super.onMessage(handler, binaryMessage);
> > > }
> > > });
> > > -------- End Java
> > >
> > >
> > > Thanks in advance,
> > > Adam Hammer
> > >
> >
>
Re: Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Posted by Adam Hammer <ad...@gmail.com>.
Neither of those break, at the WebSocket parts.
It's embedded jetty 9.3
server = new Server(Simple.getPort());
WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
// START JMX SERVER
// MBeanServer mBeanServer =
ManagementFactory.getPlatformMBeanServer();
// MBeanContainer mBeanContainer = new MBeanContainer(mBeanServer);
// server.getContainer().addEventListener(mBeanContainer);
// mBeanContainer.start();
server.setHandler(bb);
try {
ServerContainer wscontainer =
WebSocketServerContainerInitializer.configureContext(bb);
wscontainer.addEndpoint(EventSocket.class);
server.start();
} catch (Exception e) {
System.out.println(Simple.getPort());
e.printStackTrace();
System.exit(1);
}
I put the EventSocket.class in my code to listen to callbacks on Jetty's
side, nothing is triggered in it either.
Thanks for any help,
Adam
On Wed, Dec 10, 2014 at 1:17 AM, Martin Grigorov <mg...@apache.org>
wrote:
> Hi,
>
> The dependencies look good.
> The ws:/ url also looks good.
> It seems the Endpoint is not registered though.
> How do you start the application ? Do you deploy in standalone Jetty or do
> you use embedded Jetty ?
> Put a breakpoint
> at org.apache.wicket.protocol.ws.javax.WicketEndpoint#onOpen() and
> at
> org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig#getEndpointConfigs().
> Is any of them called ?
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Dec 10, 2014 at 11:01 AM, Adam Hammer <ad...@gmail.com>
> wrote:
>
> > Hi Wicket Group Members.
> >
> > Anyone have this, I can't seem to get websocket to connect
> Wicket7.0.0m4, I
> > suspect my problem is something with dependencies with jetty 9.3+?
> >
> > The behavior is injected properly, however in the Javascript console in
> the
> > client I have the following.
> >
> > Firefox can't establish a connection to the server at
> >
> >
> ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
> >
> > My build.gradle dependencies
> >
> > ------- Begin Build.gradle dependencies
> > dependencies {
> > compile 'org.apache.wicket:wicket-core:7.+'
> > compile 'org.apache.wicket:wicket-extensions:7.+'
> > compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
> > compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
> > compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
> > compile 'javax.websocket:javax.websocket-api:1.1'
> > compile 'org.reflections:reflections-maven:0.9.9-RC1'
> > compile 'org.apache.httpcomponents:httpclient:4.+'
> > compile 'org.apache.commons:commons-exec:1.3'
> > compile 'org.apache.commons:commons-io:1.+'
> > compile 'org.apache.velocity:velocity:1.+'
> > compile 'com.google.inject:guice:3.+'
> > compile 'com.google.guava:guava:+'
> > compile 'com.google.code.gson:gson:+'
> > compile 'org.hibernate:hibernate-core:3.+'
> > compile 'org.hibernate:hibernate-entitymanager:3.+'
> > compile 'com.h2database:h2:1.+'
> > compile 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
> > compile 'org.mockito:mockito-core:1.+'
> > compile 'org.slf4j:slf4j-log4j12:1.+'
> > compile 'log4j:log4j:1.+'
> > compile 'net.lingala.zip4j:zip4j:1.+'
> > compile 'net.glxn:qrgen:+'
> > compile 'org.bitcoinj:bitcoinj-core:+'
> > compile 'commons-io:commons-io:2.4'
> > compile 'commons-daemon:commons-daemon:1.0.15'
> > compile 'javax.mail:mail:1.4.1'
> >
> > testCompile 'junit:junit:4.10'
> > }
> > ------- Web.xml filter
> > <filter>
> > <filter-name>simple</filter-name>
> >
> >
> >
> <filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
> > <init-param>
> > <param-name>applicationClassName</param-name>
> > <param-value>com.metalrain.simple.SimpleImpl</param-value>
> > </init-param>
> > </filter>
> >
> > <filter-mapping>
> > <filter-name>simple</filter-name>
> > <url-pattern>/*</url-pattern>
> > </filter-mapping>
> >
> > ---- Java Code (Just a websocket behavior, with breakpoints all around,
> > they don't trigger)
> > add(new WebSocketBehavior() {
> > @Override
> > public void onEvent(Component component, IEvent<?> event) {
> > super.onEvent(component, event);
> > }
> >
> > @Override
> > protected void onConnect(ConnectedMessage message) {
> > super.onConnect(message);
> > }
> >
> > @Override
> > protected void onPush(WebSocketRequestHandler handler,
> > IWebSocketPushMessage message) {
> > super.onPush(handler, message);
> > }
> >
> > @Override
> > protected void onClose(ClosedMessage message) {
> > super.onClose(message);
> > }
> >
> > @Override
> > protected void onMessage(WebSocketRequestHandler handler,
> > TextMessage message) {
> > super.onMessage(handler, message);
> > }
> >
> > @Override
> > protected void onMessage(WebSocketRequestHandler handler,
> > BinaryMessage binaryMessage) {
> > super.onMessage(handler, binaryMessage);
> > }
> > });
> > -------- End Java
> >
> >
> > Thanks in advance,
> > Adam Hammer
> >
>
Re: Wicket 7 Websocket Gradle or Maven file with Jetty 9.3?
Posted by Martin Grigorov <mg...@apache.org>.
Hi,
The dependencies look good.
The ws:/ url also looks good.
It seems the Endpoint is not registered though.
How do you start the application ? Do you deploy in standalone Jetty or do
you use embedded Jetty ?
Put a breakpoint
at org.apache.wicket.protocol.ws.javax.WicketEndpoint#onOpen() and
at org.apache.wicket.protocol.ws.javax.WicketServerApplicationConfig#getEndpointConfigs().
Is any of them called ?
Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov
On Wed, Dec 10, 2014 at 11:01 AM, Adam Hammer <ad...@gmail.com> wrote:
> Hi Wicket Group Members.
>
> Anyone have this, I can't seem to get websocket to connect Wicket7.0.0m4, I
> suspect my problem is something with dependencies with jetty 9.3+?
>
> The behavior is injected properly, however in the Javascript console in the
> client I have the following.
>
> Firefox can't establish a connection to the server at
>
> ws://localhost:8080/wicket/websocket?pageId=0&wicket-ajax-baseurl=%3F0&wicket-app-name=simple.
>
> My build.gradle dependencies
>
> ------- Begin Build.gradle dependencies
> dependencies {
> compile 'org.apache.wicket:wicket-core:7.+'
> compile 'org.apache.wicket:wicket-extensions:7.+'
> compile 'org.apache.wicket:wicket-native-websocket-core:7.+'
> compile 'org.eclipse.jetty.aggregate:jetty-all:9.+'
> compile 'org.apache.wicket:wicket-native-websocket-javax:7.+'
> compile 'javax.websocket:javax.websocket-api:1.1'
> compile 'org.reflections:reflections-maven:0.9.9-RC1'
> compile 'org.apache.httpcomponents:httpclient:4.+'
> compile 'org.apache.commons:commons-exec:1.3'
> compile 'org.apache.commons:commons-io:1.+'
> compile 'org.apache.velocity:velocity:1.+'
> compile 'com.google.inject:guice:3.+'
> compile 'com.google.guava:guava:+'
> compile 'com.google.code.gson:gson:+'
> compile 'org.hibernate:hibernate-core:3.+'
> compile 'org.hibernate:hibernate-entitymanager:3.+'
> compile 'com.h2database:h2:1.+'
> compile 'com.googlecode.juniversalchardet:juniversalchardet:1.+'
> compile 'org.mockito:mockito-core:1.+'
> compile 'org.slf4j:slf4j-log4j12:1.+'
> compile 'log4j:log4j:1.+'
> compile 'net.lingala.zip4j:zip4j:1.+'
> compile 'net.glxn:qrgen:+'
> compile 'org.bitcoinj:bitcoinj-core:+'
> compile 'commons-io:commons-io:2.4'
> compile 'commons-daemon:commons-daemon:1.0.15'
> compile 'javax.mail:mail:1.4.1'
>
> testCompile 'junit:junit:4.10'
> }
> ------- Web.xml filter
> <filter>
> <filter-name>simple</filter-name>
>
>
> <filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
> <init-param>
> <param-name>applicationClassName</param-name>
> <param-value>com.metalrain.simple.SimpleImpl</param-value>
> </init-param>
> </filter>
>
> <filter-mapping>
> <filter-name>simple</filter-name>
> <url-pattern>/*</url-pattern>
> </filter-mapping>
>
> ---- Java Code (Just a websocket behavior, with breakpoints all around,
> they don't trigger)
> add(new WebSocketBehavior() {
> @Override
> public void onEvent(Component component, IEvent<?> event) {
> super.onEvent(component, event);
> }
>
> @Override
> protected void onConnect(ConnectedMessage message) {
> super.onConnect(message);
> }
>
> @Override
> protected void onPush(WebSocketRequestHandler handler,
> IWebSocketPushMessage message) {
> super.onPush(handler, message);
> }
>
> @Override
> protected void onClose(ClosedMessage message) {
> super.onClose(message);
> }
>
> @Override
> protected void onMessage(WebSocketRequestHandler handler,
> TextMessage message) {
> super.onMessage(handler, message);
> }
>
> @Override
> protected void onMessage(WebSocketRequestHandler handler,
> BinaryMessage binaryMessage) {
> super.onMessage(handler, binaryMessage);
> }
> });
> -------- End Java
>
>
> Thanks in advance,
> Adam Hammer
>