users@grizzly.java.net

Re: newbie help: read from console, send to browser

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Wed, 02 Jul 2008 21:09:29 -0400

Hum...works for me, but the maven repo is quite bogus today. I'm
attaching the bundle to this mail. Can you try it?

Thanks

-- Jeanfrancois

Jeanfrancois Arcand wrote:
> Strange....let me try to upload it again.
>
> Stay tuned!
>
> -- Jeanfrancois
>
> falcon wrote:
>> Ah, looks like Cometd.class is missing from the jar.
>>
>>
>> falcon wrote:
>>> I think I found the right one:
>>>
>>> http://download.java.net/maven/2/com/sun/grizzly/grizzly-cometd/1.8.1-SNAPSHOT/grizzly-cometd-1.8.1-20080702.224622-3.jar
>>>
>>> and
>>> http://download.java.net/maven/2/com/sun/grizzly/samples/grizzly-cometd-bayeux/1.8.1-SNAPSHOT/grizzly-cometd-bayeux-1.8.1-20080702.224045-1.war
>>>
>>>
>>> I tried running the following:
>>> java -jar grizzly-cometd-1.8.1-20080702.224622-3.jar -p 8080 -a
>>> grizzly-cometd-bayeux-1.8.1-20080702.224045-1.war
>>> com.sun.grizzly.bayeux.BayeuxExternalServlet
>>>
>>> But received the following message:
>>>
>>> Failed to load Main-Class manifest attribute from
>>> grizzly-cometd-1.8.1-20080702.224622-3.jar
>>>
>>>
>>>
>>>
>>> falcon wrote:
>>>> Impressive turn-around time!
>>>>
>>>> Now, is there somewhere I can download
>>>> grizzly-cometd-webserver-1.8.1-SNAPSHOT, grizzly-cometd-bayeux.war and
>>>> com.sun.grizzly.bayeux.BayeuxExternalServlet? Or am I in for a few
>>>> hours
>>>> wrestling with maven? ;)
>>>>
>>>>
>>>> Jeanfrancois Arcand-2 wrote:
>>>>>
>>>>>
>>>>> falcon wrote:
>>>>>> That sounds perfect! I'll download glassfish in the meantime and try
>>>>>> to get
>>>>>> it running myself!
>>>>> OK fixed. I've described how to use it here:
>>>>>
>>>>> https://grizzly.dev.java.net/issues/show_bug.cgi?id=180
>>>>>
>>>>> I've also added an example + code that combine bayeux and a Servlet
>>>>> that updates Bayeux channels.
>>>>>
>>>>> A+
>>>>>
>>>>> -- Jeanfrancois
>>>>>
>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> Jeanfrancois Arcand-2 wrote:
>>>>>>> Salut,
>>>>>>>
>>>>>>> falcon wrote:
>>>>>>>> The most recent code I've tested with is almost exactly the same as
>>>>>>>> Shing
>>>>>>>> Wai
>>>>>>>> Chan's code listed at the end of this message. Frankly, I'm not
>>>>>>>> sure
>>>>>>>> exactly where that servlet fits in.
>>>>>>>>
>>>>>>>> I start the server in the following manner:
>>>>>>>>
>>>>>>>> java -jar grizzly-cometd-webserver-1.8.0.jar -p 8080 -a
>>>>>>>> grizzly-cometd-echo-1.8.0.war TestServlet
>>>>>>>> (by the way, including or excluding TestServlet doesn't seem to
>>>>>>>> make
>>>>>>>> any
>>>>>>>> difference at all)
>>>>>>>>
>>>>>>>> I open http://localhost:8080 in a couple of browsers. I type in
>>>>>>>> something
>>>>>>>> in the html form, press enter and it shows up in both web pages
>>>>>>>> (which is
>>>>>>>> exactly how it is supposed to work).
>>>>>>>>
>>>>>>>> I don't see any exception, any of my log messages, only the startup
>>>>>>>> up
>>>>>>>> message of cometd-webserver.
>>>>>>> I see :-) You are using the cometd package, not the http-servlet
>>>>>>> package :-) I've missed that case...Then specifying the Servlet
>>>>>>> doesn't make
>>>>>>> any difference, I agree.
>>>>>>>
>>>>>>> The cometd-webserver cannot be used in conjunction with a
>>>>>>> Servlet....so far. The cometd-webserver can only be used as a
>>>>>>> reflector, meaning
>>>>>>> your application logic must be implemented on the client side,
>>>>>>> not on the server side (using a Servlet). If you want to
>>>>>>> implement what Shing Wai blogged about, you need to use a full
>>>>>>> Servlet Container like GlassFish v2 or v3. As an example, take a
>>>>>>> look at this blog:
>>>>>>>
>>>>>>> http://weblogs.java.net/blog/caroljmcdonald/archive/2008/07/comet_slideshow.html
>>>>>>>
>>>>>>>
>>>>>>> I recommend you download GlassFish v2, enable Comet:
>>>>>>>
>>>>>>> http://weblogs.java.net/blog/jfarcand/archive/2008/02/comet_support_i.html
>>>>>>>
>>>>>>>
>>>>>>> and then deploy your war file. I suspect it will works.
>>>>>>>
>>>>>>> Now back to your example, I do think we should support your use
>>>>>>> case,
>>>>>>> so I've filled:
>>>>>>>
>>>>>>> https://grizzly.dev.java.net/issues/show_bug.cgi?id=180
>>>>>>>
>>>>>>> I will work on it today and will update you as soon as I've it
>>>>>>> working. If you can't wait, then just download v2 :-)
>>>>>>>
>>>>>>> How does that sound?
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>> -- Jeanfrancois
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> For example, I type in "test" in the html form, and the following
>>>>>>>> gets
>>>>>>>> printed below the input field in _both_ browsers:
>>>>>>>>
>>>>>>>> /service/echo: test
>>>>>>>>
>>>>>>>> No other messages in the browsers or the console windows.
>>>>>>>>
>>>>>>>> As I mentioned before, I'd love to figure out how to publish my own
>>>>>>>> messages
>>>>>>>> to the browser.
>>>>>>>>
>>>>>>>> Following is the servlet code:
>>>>>>>> -----------------
>>>>>>>> import java.io.IOException;
>>>>>>>> import java.util.*;
>>>>>>>> import javax.servlet.*;
>>>>>>>> import javax.servlet.http.*;
>>>>>>>>
>>>>>>>> import com.sun.grizzly.comet.*;
>>>>>>>> import com.sun.grizzly.cometd.*;
>>>>>>>> import com.sun.grizzly.cometd.bayeux.*;
>>>>>>>>
>>>>>>>> public class TestServlet extends HttpServlet {
>>>>>>>> protected void doPost(HttpServletRequest request,
>>>>>>>> HttpServletResponse response) throws ServletException,
>>>>>>>> IOException {
>>>>>>>> doProcess(request, response);
>>>>>>>> }
>>>>>>>>
>>>>>>>> protected void doGet(HttpServletRequest request,
>>>>>>>> HttpServletResponse response) throws ServletException,
>>>>>>>> IOException {
>>>>>>>> doProcess(request, response);
>>>>>>>> }
>>>>>>>>
>>>>>>>> protected void doProcess(HttpServletRequest request,
>>>>>>>> HttpServletResponse response) throws ServletException,
>>>>>>>> IOException {
>>>>>>>> String contextPath = "/cometd/cometd";
>>>>>>>> String channel = "/service/echo";
>>>>>>>> String messageDataName = "msg";
>>>>>>>> String messageDataValue =
>>>>>>>> request.getParameter("messageDataValue");
>>>>>>>> ServletOutputStream out = response.getOutputStream();
>>>>>>>> printForm(out);
>>>>>>>>
>>>>>>>> CometEngine engine = CometEngine.getEngine();
>>>>>>>> CometContext context = engine.getCometContext(contextPath);
>>>>>>>>
>>>>>>>> if (context != null && messageDataValue != null) {
>>>>>>>> Map<String, Object> map = new HashMap<String,
>>>>>>>> Object>();
>>>>>>>> map.put(messageDataName, messageDataValue);
>>>>>>>> Data data = new Data();
>>>>>>>> data.setMapData(map);
>>>>>>>>
>>>>>>>> DeliverResponse deliverResponse = new
>>>>>>>> DeliverResponse();
>>>>>>>> deliverResponse.setChannel("/service/echo");
>>>>>>>> deliverResponse.setClientId("");
>>>>>>>> deliverResponse.setData(data);
>>>>>>>> deliverResponse.setLast(true);
>>>>>>>> deliverResponse.setFollow(true);
>>>>>>>>
>>>>>>>> context.notify(deliverResponse);
>>>>>>>> out.println("Data is sent.");
>>>>>>>> System.out.println("Data is sent.");
>>>>>>>> } else {
>>>>>>>> out.println("No data is sent.");
>>>>>>>> System.out.println("No data is sent.");
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>> private void printForm(ServletOutputStream out) throws
>>>>>>>> IOException {
>>>>>>>> out.println(
>>>>>>>> "<h1>Send a cometd Message</h1> <form method=\"POST\"
>>>>>>>> action=\"test\">
>>>>>>>> <table> <tr><td>Message Data Value: <td><input type=\"text\"
>>>>>>>> name=\"messageDataValue\" value=\"\"> <tr><td colspan=\"2\"><input
>>>>>>>> type=\"submit\"> </table> </form> <hr>"
>>>>>>>> );
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>>
>>>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>>>
>>>>>>>
>>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>