Embedded Jetty Server Example

Hi,
I need a working example of Jetty web server, embedded inside my application.
Tried the example from here:
http://jetty.mortbay.org/xref/org/mortbay/jetty/example/OneContext.html
But it doesn't work, possibly because it is for v6, and I have v7.
I want one (multithreaded) method to handle all the HTTP requests.
Thanks!
LVL 4
Romi KuntsmanBig Data EngineerAsked:
Who is Participating?
 
Romi KuntsmanConnect With a Mentor Big Data EngineerAuthor Commented:
Moved to Jetty v6 and it works like in the example.

To close HTTP connection, I added a call to flush() and close() on the output stream.
0
 
CEHJCommented:
To quote dpkg:

>>
 Look buddy, "doesn't work" is a vague statement.  Does it sit on the couch all day long?  Does it procrastinate doing the
             dishes?  Does it beg on the street for change?  Please be specific!  Define 'it' and what it isn't doing.  Give us more
             details so we can help you without needing to ask basic questions like "what's the error message?".
>>
0
 
Romi KuntsmanBig Data EngineerAuthor Commented:
Doesn't work: waiting for the response forever.
Opening another port shows nobody is listening.
Opening the port I attached the server to causes the browser to wait forever and never show any page.
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
CEHJCommented:
Well certainly a default maven build creates a lot of stuff, but i got it started with the following command (your paths will start differently, but should end the same) and don't forget to include servlet.jar:
java -classpath /bk/goose/tecra8000/home/java/java-libraries/httpunit-1.6.2/jars/servlet.jar:/home/goose/.m2/repository/org/mortbay/jetty/jetty/6.1.18/jetty-6.1.18.jar:/home/goose/.m2/repository/org/mortbay/jetty/jetty-embedded/6.1.18/jetty-embedded-6.1.18.jar:/home/goose/.m2/repository/org/mortbay/jetty/jetty-util/6.1.18/jetty-util-6.1.18.jar org.mortbay.jetty.example.OneContext

Open in new window

0
 
objectsCommented:
0
 
Romi KuntsmanBig Data EngineerAuthor Commented:
:-)

Yes, I know.
And it is leaking connections.
And you are trying to help me here:
http://www.experts-exchange.com/Programming/Languages/Java/Q_24416845.html

So now I'm also trying to use Jetty instead, maybe this will help.
0
 
objectsCommented:
> And it is leaking connections.

I'm not yet convinced it is :)

0
 
CEHJCommented:
Sounds good.
0
 
CEHJCommented:
>>Found out myself I needed to close and flush the output buffer

Can you explain that please?
0
 
Romi KuntsmanBig Data EngineerAuthor Commented:
Yeah sure. When I moved the code to Jetty, and started in, the connection number started climbing too.
I opened the browser on that page and it said "Waiting for [server]..." and the animation kept running, that is it was still running the page. However, I wrote all what I wanted and finished processing it.
So I realized that if my handler doesn't flush and close the output stream, then the server thread that calls it won't either. Frankly I expected more from it, especially since no example I've seen implicitly does that.

So basically I added, in the end of the handle(...) method in my Handler, the following code.

ServletOutputStream out = response.getOutputStream();
out.flush();
out.close();
response.flushBuffer();

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.