Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] can someone please share jsr 356 example with javascript

Thanks so much Joakim, with 9.2 it started working with _javascript_.

I would like to know what exactly is the difference between 9.1 and 9.2 that made it work.

I know I can read thru the code, but if it is quick to explain, can you pls?

Thanks a lot.

-          Anu

 

From: jetty-users-bounces@xxxxxxxxxxx [mailto:jetty-users-bounces@xxxxxxxxxxx] On Behalf Of Joakim Erdfelt
Sent: Tuesday, July 29, 2014 3:05 PM
To: JETTY user mailing list
Subject: Re: [jetty-users] can someone please share jsr 356 example with _javascript_

 

Its wired, as the stacktrace shows.

 

With websocket it is imperative that you stay up to date.

Chrome and Firefox are still changing (eg: Sec-WebSocket-Protocol validation) and adding (compression extensions) to their websocket implementations.

Go get Jetty 9.2.2.v20140723 and try again.

 


--

Joakim Erdfelt <joakim@xxxxxxxxxxx>

Expert advice, services and support from from the Jetty & CometD experts

 

On Tue, Jul 29, 2014 at 11:40 AM, Padki, Anuradha <anuradha.padki@xxxxxxxx> wrote:

Hello,

 

I got your code from  https://github.com/jetty-project/embedded-jetty-websocket-examples

 

Made a minor change to it to get the web app context going

 

ResourceHandler resource_handler = new ResourceHandler();

        resource_handler.setResourceBase("C:\\Mpower\\Minimal\\WebContent");

        resource_handler.setWelcomeFiles(new String[]{ "index.html" });

        HandlerList handlers = new HandlerList();

        //handlers.setHandlers(new Handler[] { resource_handler,  context });

       

       handlers.setHandlers(new Handler[] { resource_handler,  context,  new DefaultHandler() });

       

        server.setHandler(handlers);

   

 

I still get eventclient.java working, but now I have a index.html that simply includes inde,js as follows

 

var ws = new WebSocket("ws://localhost:8080/events/");

 

ws._onopen_ = function() {

    alert("Opened!");

    ws.send("Hello Server");

};

 

ws._onmessage_ = function (evt) {

    alert("Message: " + evt.data);

};

 

ws._onclose_ = function() {

    alert("Closed!");

};

 

ws._onerror_ = function(err) {

    alert("Error: " + err);

};

 

I get an error 500 on chrome and on the server side I get

2014-07-29 14:38:02.711:WARN:oejs.ServletHandler:qtp2020325258-12: /events/

java.lang.IllegalArgumentException

     at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.setConfig(PerMessageDeflateExtension.java:154)

     at org.eclipse.jetty.websocket.common.extensions.WebSocketExtensionFactory.newInstance(WebSocketExtensionFactory.java:69)

     at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.negotiate(ExtensionStack.java:230)

     at org.eclipse.jetty.websocket.server.WebSocketServerFactory.upgrade(WebSocketServerFactory.java:476)

     at org.eclipse.jetty.websocket.server.WebSocketServerFactory.acceptWebSocket(WebSocketServerFactory.java:172)

     at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:153)

     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1622)

     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549)

     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:219)

     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1111)

     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:478)

     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)

     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1045)

     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

     at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)

     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

     at org.eclipse.jetty.server.Server.handle(Server.java:462)

     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:279)

     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:232)

     at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:534)

     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:607)

     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:536)

     at java.lang.Thread.run(Thread.java:744)

 

 

I think that the websocketcontainer is not wired to the server, can you please help?

 

Thanks again for all your help

Regards

-          Anu

 

 

 

From: jetty-users-bounces@xxxxxxxxxxx [mailto:jetty-users-bounces@xxxxxxxxxxx] On Behalf Of Joakim Erdfelt
Sent: Tuesday, July 29, 2014 11:41 AM


To: JETTY user mailing list
Subject: Re: [jetty-users] can someone please share jsr 356 example with _javascript_

 

This might be useful to you too.

 

 

Its also important to know that WebSocket is a "GET with Upgrade to WebSocket".

All other requests will be handled by non-websocket mechanisms.

Do what you want. return 404, 500, show an error message, redirect to another service page somewhere else, respond with html + _javascript_ to give browsers something to use to talk to you, etc...

Totally up to you.

 

Here's a bit more complex of  an example.

 

 

We use this to test out browser websocket support.  namely changes to the spec and extensions.

It starts a server, with 1 websocket endpoint, and on normal GET requests will return static content (html/css/js) from src/test/resources

 

 


--

Joakim Erdfelt <joakim@xxxxxxxxxxx>

Expert advice, services and support from from the Jetty & CometD experts

 

On Tue, Jul 29, 2014 at 8:04 AM, Padki, Anuradha <anuradha.padki@xxxxxxxx> wrote:

Thanks so much, got rid of compilation error, it was due to eclipse adding the servlet-api in the build path.

So I am trying your minimal example now, but I do not understand what should code is expected in the servlet.

This is the code I am trying (as on the mailing lsit)

Thanks you very much for your help.

-          Anu

 

 

package com.example.minimal;

 

import javax.websocket.OnMessage;

import javax.websocket.Session;

import javax.websocket.server.ServerEndpoint;

 

import org.eclipse.jetty.server.Server;

import org.eclipse.jetty.servlet.ServletContextHandler;

import org.eclipse.jetty.servlet.ServletHolder;

import org.eclipse.jetty.websocket.jsr356.server.ServerContainer;

import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;

 

 

/**

* Example of setting up a javax.websocket server with Jetty embedded

*/

public class WebSocketJsrServer

{

    /**

     * A server socket endpoint

     */

    @ServerEndpoint(value = "/echo")

    public static class EchoJsrSocket

    {

        @OnMessage

        public void onMessage(Session session, String message)

        {

            session.getAsyncRemote().sendText(message);

        }

    }

 

    public static void main(String[] args) throws Exception

    {

        Server server = new Server(8080);

 

        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);

        context.setContextPath("/");

        server.setHandler(context);

 

        // Add a servlet to your context.

        // It is required that you provide at least 1 servlet.

        // Recommended that this servlet merely provide a

        // "This is a websocket only server" style response to GET requests

        context.addServlet(new ServletHolder(new HelloServlet()),"/*");

 

        // Enable javax.websocket configuration for the context

        ServerContainer wsContainer  = WebSocketServerContainerInitializer.configureContext(context);

 

        // Add your websockets to the container

        wsContainer.addEndpoint(EchoJsrSocket.class);

 

        server.start();

        context.dumpStdErr(); // show the context details

        server.join();

    }

}

 

 

 

 

From: jetty-users-bounces@xxxxxxxxxxx [mailto:jetty-users-bounces@xxxxxxxxxxx] On Behalf Of Joakim Erdfelt
Sent: Tuesday, July 29, 2014 10:37 AM


To: JETTY user mailing list
Subject: Re: [jetty-users] can someone please share jsr 356 example with _javascript_

 

The error ...

 

class "javax.servlet.http.HttpSessionIdListener"'s signer information does not match signer information of other classes in the same package

 

means you have 2 (or more) jars with javax.servlet.http.HttpSessionIdListener in it.

one of those jars is signed, the other ones either don't have jar signatures, or have different ones.

 

fix your classpath.

 

It is very uncommon to mix jetty embedded and jetty.xml in the same application.

While it is possible, you'll essentially end up with what jetty-start does, which is what the jetty-distribution is all about.

 


--

Joakim Erdfelt <joakim@xxxxxxxxxxx>

Expert advice, services and support from from the Jetty & CometD experts

 

On Tue, Jul 29, 2014 at 6:52 AM, Padki, Anuradha <anuradha.padki@xxxxxxxx> wrote:

Thanks so very much, I am trying some examples from internet (or from user-group) but I can’t even get those compiled.

I am trying the minimal example you mentioned on the mailing list. My goal is to get embedded jetty working (preferably with jetty.xml, I could get a hello servlet working with jetty.xml on 9.1; the trouble starts with websocketservlets, however right now I am only trying to get minimal websocket working)

BTW checked the jars, I have same jars as from your email.

Now for your minimal  code I am totally stuck at

class "javax.servlet.http.HttpSessionIdListener"'s signer information does not match signer information of other classes in the same package

 

I so very much appreciate your help, but I don’t want to bother you a lot, is there a very good example for the 9.1 jsr 356 embedded jetty with any html/_javascript_  code?

I will like to try that.

 

Regards and thanks a bunch.

-          Anu

 

From: jetty-users-bounces@xxxxxxxxxxx [mailto:jetty-users-bounces@xxxxxxxxxxx] On Behalf Of Joakim Erdfelt
Sent: Tuesday, July 29, 2014 9:31 AM


To: JETTY user mailing list
Subject: Re: [jetty-users] can someone please share jsr 356 example with _javascript_

 

Jetty 9.1.4 has JSR-356 support.

 

$ ls -la jetty-distribution-9.1.4.v20140401/lib/websocket/

total 540

drwxrwxr-x.  2 joakim joakim   4096 Apr  7 09:51 .

drwxrwxr-x. 12 joakim joakim   4096 Apr  7 09:51 ..

-rw-rw-r--.  1 joakim joakim  36611 Apr  2 10:14 javax.websocket-api-1.0.jar   <!-- the official JSR-356 API Jar -->

-rw-rw-r--.  1 joakim joakim 156243 Apr  2 10:14 javax-websocket-client-impl-9.1.4.v20140401.jar   <!-- the javax.websocket implementation by jetty -->

-rw-rw-r--.  1 joakim joakim  36802 Apr  2 10:14 javax-websocket-server-impl-9.1.4.v20140401.jar   <!-- the javax.websocket.server implementation by jetty -->

-rw-rw-r--.  1 joakim joakim  43680 Apr  2 10:14 websocket-api-9.1.4.v20140401.jar

-rw-rw-r--.  1 joakim joakim  35188 Apr  2 10:14 websocket-client-9.1.4.v20140401.jar

-rw-rw-r--.  1 joakim joakim 170297 Apr  2 10:14 websocket-common-9.1.4.v20140401.jar

-rw-rw-r--.  1 joakim joakim  35774 Apr  2 10:14 websocket-server-9.1.4.v20140401.jar

-rw-rw-r--.  1 joakim joakim  17923 Apr  2 10:14 websocket-servlet-9.1.4.v20140401.jar

 

If it isn't working for you, can you give some details on your attempts?

Things like: 

 * your ${jetty.base} configurations (if using the distribution)

 * your webapp context deployable xml (if you are using xml based deploys)

 * your server.dump() output (if using embedded mode)

 * your code on attempting to access JSR-356 (in your webapp)


--

Joakim Erdfelt <joakim@xxxxxxxxxxx>

Expert advice, services and support from from the Jetty & CometD experts

 

On Tue, Jul 29, 2014 at 6:23 AM, Padki, Anuradha <anuradha.padki@xxxxxxxx> wrote:

Thanks for the response Joakim

I am sorry I did not phrase it right: I got websocket  working on 8 (not jsr 356) and I am trying to get jsr 356 working on 9.1.4, so it will work only on 9.2 , is that correct?

Then

 

From: jetty-users-bounces@xxxxxxxxxxx [mailto:jetty-users-bounces@xxxxxxxxxxx] On Behalf Of Joakim Erdfelt
Sent: Tuesday, July 29, 2014 9:21 AM
To: JETTY user mailing list
Subject: Re: [jetty-users] can someone please share jsr 356 example with _javascript_

 

JSR356 is available on Jetty 9.2 and newer.

It is not available on Jetty 8.


--

Joakim Erdfelt <joakim@xxxxxxxxxxx>

Expert advice, services and support from from the Jetty & CometD experts

 

On Tue, Jul 29, 2014 at 5:47 AM, Padki, Anuradha <anuradha.padki@xxxxxxxx> wrote:

I am new to Jetty, I could get jetty 8 websocket working, but am struggling with getting jsr 356 working.

I tried many example codes but no luck, can somebody please share a simple sample of code with jsr356 with _javascript_?

Any help is greatly appreciated.

-          Anu


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

 


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

 


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

 


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

 


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

 


Back to the top