users@grizzly.java.net

Re: Problem with Bayeux Servlet Client in GlassFish V3

From: Micha³ Orzechowski <michal.orzechowski_at_oneinfo.pl>
Date: Thu, 04 Dec 2008 14:50:28 +0100

Hello,

    Thanks, for advice. I'm using Grizzly 1.8.6.2 (default in Glassfish
v3-predule), where this attribute isn't avaible. I have tried to update
Glassfish glassfish-optionals.jar with new version 1.9.0 of comet,
cometd and messages jars using hints from your blog. However now I get
an exception when application starts:

SEVERE:
com.sun.grizzly.arp.AsyncProcessorTask.getThreadPool()Ljava/util/concurrent/ExecutorService;
java.lang.NoSuchMethodError:
com.sun.grizzly.arp.AsyncProcessorTask.getThreadPool()Ljava/util/concurrent/ExecutorService;
        at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:307)
        at
com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:84)
        at
com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:130)
        at
com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:109)
        at
com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:88)
        at com.sun.grizzly.http.TaskBase.call(TaskBase.java:359)
        at
com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
        at
com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
SEVERE: WorkerThreadImpl unexpected exception:
java.lang.RuntimeException: java.lang.NoSuchMethodError:
com.sun.grizzly.arp.AsyncProcessorTask.getThreadPool()Ljava/util/concurrent/ExecutorService;
        at
com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:106)
        at com.sun.grizzly.http.TaskBase.call(TaskBase.java:359)
        at
com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
        at
com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
Caused by: java.lang.NoSuchMethodError:
com.sun.grizzly.arp.AsyncProcessorTask.getThreadPool()Ljava/util/concurrent/ExecutorService;
        at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:307)
        at
com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:84)
        at
com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:130)
        at
com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:109)
        at
com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:88)
        ... 3 more

I'm stuck. Is there any way to update girizzly to verson 1.9.0 in
Glassfish? If you could help me, I would be very gratefull.

Thanks
Michal



Jeanfrancois Arcand pisze:
> Salut,
>
> Micha³ Orzechowski wrote:
>> Hello,
>>
>> I'm trying to develop simple app that:
>> 1. Allows clients to subscribe to a channel. The index.html page
>> is a client's page where new data should be published.
>> Client logic is implemented using Dojo Toolkit v 1.1.1
>> (standard subscribe method)
>>
>> 2. Publish new data using the servlet. The post.html is a admin
>> page from witch I send data to the servlet.
>> Servlet's logic is implemented with Grizzly Comet/Bayeux
>> (default GlassFish V3 components ...)
>>
>> Here is what i do:
>>
>> 1. Open client page in browser A
>> 2. Open client page in browser B (tab 1)
>> 3. Open admin page in browser B (tab 2)
>> 4. Send data from admin page to servlet ...
>> .. and nothing happens .. clients aren't notified until i
>> open new client page in browser B in tab 3 (or browser A in tab 2 -
>> no matter)!
>>
>> It looks like server is holding the data and i really don't know
>> why. Its really strange and i hope maybe some would be able to help me?
>>
>> Servlet code :
>>
>> public class DataServlet extends HttpServlet {
>>
>> CometContext context;
>>
>> @Override
>> public void init(ServletConfig config) throws ServletException {
>> super.init(config);
>> String contextPath = "/CometApp/cometd";
>> CometEngine cometEngine = CometEngine.getEngine();
>> context = cometEngine.register(contextPath);
>> context.setExpirationDelay(60 * 1000);
>> }
>>
>> protected void processRequest(HttpServletRequest request,
>> HttpServletResponse response)
>> throws ServletException, IOException {
>> String channel = "/my/demo";
>> String messageDataName = "text";
>> String messageDataValue = request.getParameter("newinfo");
>>
>> if (messageDataValue != null) {
>> Map<String, Object> map = new HashMap<String, Object>();
>> map.put(messageDataName,
>> dummyBussinesLogic(messageDataValue));
>> Data data = new Data();
>> data.setMapData(map);
>>
>> DeliverResponse deliverResponse = new DeliverResponse();
>> deliverResponse.setChannel(channel);
>> deliverResponse.setData(data);
>> deliverResponse.setLast(true);
>> deliverResponse.setFollow(true);
>
> Just add:
>
> deliverResponse.setFinished(true);
>
> and I suspect it will works.
>
> Thanks
>
> -- Jeanfrancois
>
>
>>
>> context.notify(deliverResponse);
>>
>> out.println("Data is sent.");
>> } else {
>> out.println("No data is sent.");
>> }
>>
>> response.sendRedirect("post.html");
>> }
>>
>> @Override
>> protected void doGet(HttpServletRequest request,
>> HttpServletResponse response)
>> throws ServletException, IOException {
>> processRequest(request, response);
>> }
>>
>> @Override
>> protected void doPost(HttpServletRequest request,
>> HttpServletResponse response)
>> throws ServletException, IOException {
>> processRequest(request, response);
>> }
>>
>> private String dummyBussinesLogic(String s) {
>> return s.toUpperCase();
>> }
>> }
>>
>> Thanks
>> Michal Orzechowski
>>
>> ---------------------------------------------------------------------
>> 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
>
>