Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] jetty 8.0.4 websocket problem..


I still have a problem about websocket connection ..

The line NPE occur, is 201.. AbstractHttpConnection may be null..


198         AbstractHttpConnection http = AbstractHttpConnection.getCurrentConnection();
199         if (http instanceof BlockingHttpConnection)
200             throw new IllegalStateException("Websockets not supported on blocking connectors");
201         ConnectedEndPoint endp = (ConnectedEndPoint)http.getEndPoint();

I used a listener class implementing ServletContextListener interface..

In the listener class, I create a jetty server with 8081 port. 

and registered my class into web.xml as you see on attachment...


Is any problem in the way I use jetty api..?







On Mon, Dec 26, 2011 at 2:36 PM, Seonhong Ahn <seonhong.ahn@xxxxxxxxx> wrote:

Thank you, Joakim ^^

I have changed jetty version 8.1.0.RC2.. but the result was the same..

The browser that I used was "Chrome 16.0.912.63 m"


I attached the project file (eclipse maven project)

In pom.xml, I wrote jetty version. 




 

On Sat, Dec 24, 2011 at 12:41 AM, Joakim Erdfelt <joakim@xxxxxxxxxxx> wrote:
That line of code will only trigger if the "Sec-WebSocket-Extensions" header is present.
The Sec-WebSocket-Extensions header is optional, so lack of it isn't going to trigger that bug.


Can you provide some details of the client/browser you are using?

Also, have you tried the more recent jetty-websocket impls?
Try jetty "8.1.0.RC2" please.

--
Joakim Erdfelt

(the people behind jetty and cometd)



On Fri, Dec 23, 2011 at 12:49 AM, Seonhong Ahn <seonhong.ahn@xxxxxxxxx> wrote:

I found an available reason.. 


1. The handshake from client of Proposed Standard version of WebSocket.

        GET /chat HTTP/1.1
        Host: server.example.com
        Upgrade: websocket
        Connection: Upgrade
        Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
        Origin: http://example.com
        Sec-WebSocket-Protocol: chat, superchat
        Sec-WebSocket-Version: 13


I guess, chrome will send a message to server with this format. 

Error occurred at 201 line in upgrade method in WebSocketFactory class in jetty 8.0.4   

200         for (Enumeration e=request.getHeaders("Sec-WebSocket-Extensions");e.hasMoreElements();)
201         {
202             QuotedStringTokenizer tok = new QuotedStringTokenizer((String)e.nextElement(),",");
203             while (tok.hasMoreTokens())
204                 extensions_requested.add(tok.nextToken());
205         }
206 


Handshake from client has no "Sec-WebSocket-Extensions" header.. 


This is the reason of NullPointerException I think....


Is that right...?


On Fri, Dec 23, 2011 at 4:24 PM, Seonhong Ahn <seonhong.ahn@xxxxxxxxx> wrote:

Hi all ^^

I develop a websocket application with jetty 8.0.4..

I have a problem like this..

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

[INFO] Scanning for projects...
[WARNING] The POM for org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4 is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.mortbay.jetty:maven-jetty-plugin:8.0.4: Plugin org.mortbay.jetty:maven-jetty-plugin:8.0.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jetty8 Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4 is missing, no dependency information available
[WARNING] Failed to retrieve plugin descriptor for org.mortbay.jetty:maven-jetty-plugin:8.0.4: Plugin org.mortbay.jetty:maven-jetty-plugin:8.0.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4
[INFO] 
[INFO] >>> jetty-maven-plugin:8.1.0.RC1:run (default-cli) @ jetty8 >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ jetty8 ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ jetty8 ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ jetty8 ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ jetty8 ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] <<< jetty-maven-plugin:8.1.0.RC1:run (default-cli) @ jetty8 <<<
[INFO] 
[INFO] --- jetty-maven-plugin:8.1.0.RC1:run (default-cli) @ jetty8 ---
[INFO] Configuring Jetty for project: jetty8 Maven Webapp
[INFO] webAppSourceDirectory E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\src\main\webapp does not exist. Defaulting to E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\src\main\webapp
[INFO] Reload Mechanic: automatic
[INFO] Classes = E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\target\classes
2011-12-23 15:39:42.578:INFO:oejs.Server:jetty-8.1.0.RC1
[INFO] Context path = /
[INFO] Tmp directory = E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\target\tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides =  none
[INFO] web.xml file = file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\src\main\webapp
2011-12-23 15:39:43.244:INFO:oejpw.PlusConfiguration:No Transaction manager found - if your webapp requires one, please configure one.
2011-12-23 15:39:45.531:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/PocWebSocketServletContextListener has received a servlet context event.

2011-12-23 15:39:45.531:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/
2011-12-23 15:39:45.531:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/
PocWebSocketHandler is created.
2011-12-23 15:39:45.558:INFO:oejs.Server:jetty-8.1.0.RC1
2011-12-23 15:39:45.591:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8081 STARTING
2011-12-23 15:39:45.616:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/
2011-12-23 15:39:45.653:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 STARTING
[INFO] Started Jetty Server
PocWebSocket is created.
2011-12-23 15:40:49.537:WARN:oejs.HttpConnection:/
java.lang.NullPointerException
at org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:201)
at org.eclipse.jetty.websocket.WebSocketFactory.acceptWebSocket(WebSocketFactory.java:326)
at org.eclipse.jetty.websocket.WebSocketHandler.handle(WebSocketHandler.java:38)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:662)



-------------------------------------------------------------------------------------------------------------------------------------------

I made a WebSocketServletContextListener implementing ServletContextListener. 

And in this class, I started a jetty server which had a WebSocketHandler set DefaultHandler.

I register this class as a listener in web.xml.

Client ia a chrome 16.0.912.63 m. 


On client, 

var location = "ws://localhost:8081";
this._ws = new WebSocket(location);



Is this problem why client and server's websocket version is different ?

I don't know what jetty's websocket version is.

As I know chrome v.16 supports Hybi17.. 

I don't know what I would do....-.-;;


I wish you have an answer or hint..


Thank you all for reading.. 

and thank you so much for your answer in advance.. 


Happy Christmas ~ ^_____^




--

----------------------------------------------------------------------------------
Seonhong Ahn 
Director of Research and Development

Collabra Co.
960-6 Deachi-dong, Gangnam-gu, Seoul, Korea 135-280 
Tel. 82-70-8670-6929         Fax. 82-2-6280-4807
Mobile 82-10-8292-3923
----------------------------------------------------------------------------------





--

----------------------------------------------------------------------------------
Seonhong Ahn 
Director of Research and Development

Collabra Co.
960-6 Deachi-dong, Gangnam-gu, Seoul, Korea 135-280 
Tel. 82-70-8670-6929         Fax. 82-2-6280-4807
Mobile 82-10-8292-3923
----------------------------------------------------------------------------------


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users



_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users




--

----------------------------------------------------------------------------------
Seonhong Ahn 
Director of Research and Development

Collabra Co.
960-6 Deachi-dong, Gangnam-gu, Seoul, Korea 135-280 
Tel. 82-70-8670-6929         Fax. 82-2-6280-4807
Mobile 82-10-8292-3923
----------------------------------------------------------------------------------




--

----------------------------------------------------------------------------------
Seonhong Ahn 
Director of Research and Development

Collabra Co.
960-6 Deachi-dong, Gangnam-gu, Seoul, Korea 135-280 
Tel. 82-70-8670-6929         Fax. 82-2-6280-4807
Mobile 82-10-8292-3923
----------------------------------------------------------------------------------


Back to the top