Problem with Reloading

5 messages Options
Embed this post
Permalink
Sopasakis Pantelis

Problem with Reloading

Reply Threaded More More options
Print post
Permalink
Dear List,
  Hi for the first time, cause I'm a new member. I've developed a web
service based on Restlet 1.1.5 which runs as a standalone application
using Grizzly. I deciided to migrate to Restlet version 2.0. m3 and
after some refactoring and changes in my code, I managed to make the
whole thing work just fine!

In the server class, I attach both an application and some static html
files including a javadoc directory. This is the server class:


*******************************************************************

package org.opentox.server;
 
import java.util.logging.Level;
import java.util.logging.Logger;
import org.opentox.Applications.OpenToxApplication;
import org.opentox.Resources.AbstractResource;
import org.restlet.Application;
import org.restlet.Component;
import org.restlet.data.LocalReference;
import org.restlet.data.Protocol;
import org.restlet.resource.Directory;
import org.restlet.routing.VirtualHost;
 
/**
*
* @author chung
*/
public class Server {
 
    public static void main(String[] args){
        // Create a component
           Component component = new Component();
 
           component.getServers().add(Protocol.HTTP, 3000);
 
           component.getClients().add(Protocol.FILE);
 
 
           LocalReference javadoc =
                    LocalReference.createFileReference(
                  AbstractResource.javadocDir);
 
           LocalReference home =
                   LocalReference.createFileReference(
                  AbstractResource.HTMLDir);
 
 
           Directory javadocDirectory = new
Directory(component.getContext().createChildContext(), javadoc);
           Directory homeDirectory = new
Directory(component.getContext().createChildContext(), home);
 
 
           Application application = new OpenToxApplication();
 
           VirtualHost host = new VirtualHost();
 
           host.attach("/OpenToxServices",application);
           host.attach("",homeDirectory);
           host.attach("/OpenToxServices/javadoc", javadocDirectory);
 
 
 
           component.setDefaultHost(host);
        try {
            component.start();
        } catch (Exception ex) {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE,
null, ex);
        }
 
    }
 
}
********************************************************************

The problem is that when I reload any of the resources that corresponds
to a static HTML file (e.g. the javadoc), I get a status code 405
(Method Not allowed). If I reload the page again, I get the HTML but
without the CSS. I reload it again to get the correct HTML
representation but without the Images contained in it. Another reload
gives once again a status 405, then HTML without css and finally the
correct HTML. This happens each time I press F5 on mozilla BUT NOT if I
request the resource again, i.e. if I retype the URL. Note that this
happens only with the static html files. Other resources that are based
on java classes (MyResource extends ServerResource) don't have such
problems!

Having no idea how to solve that, I just separated the static files from
the service. I set up an apache server on another port (80) to deploy
the static html files and the services run on 3000. However I think
other people are experiencing the same problem, because I had the same
problem on 2 different machines.

I would appreciate any suggestions or ideas on that.

You can find the source code of the application at
http://github.com/sopasakis/yaqp 

Thank you in advance,
Sopasakis Pantelis

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2410202
Rob Heittman

Re: Problem with Reloading

Reply Threaded More More options
Print post
Permalink
Did you try it to see if you get the same behavior using a connector other than Grizzly?  (e.g. Jetty or the included HTTP connector)  On refresh, most Mozilla based browsers will try a conditional GET first to see if the resource has changed, then if the server indicates that it has changed, will repeat with the full GET.  The weird behavior you describe is also found when running under Tomcat 5 if you don't send a large enough entity from Restlet ... where that first conditional GET will fail and cause the same symptoms in the browser.  So I'm wondering if it's connector-specific here, too.

On Thu, Oct 22, 2009 at 8:38 AM, Sopasakis Pantelis <[hidden email]> wrote:
Dear List,
 Hi for the first time, cause I'm a new member. I've developed a web
service based on Restlet 1.1.5 which runs as a standalone application
using Grizzly. I deciided to migrate to Restlet version 2.0. m3 and
after some refactoring and changes in my code, I managed to make the
whole thing work just fine!

In the server class, I attach both an application and some static html
files including a javadoc directory. This is the server class:


*******************************************************************

package org.opentox.server;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.opentox.Applications.OpenToxApplication;
import org.opentox.Resources.AbstractResource;
import org.restlet.Application;
import org.restlet.Component;
import org.restlet.data.LocalReference;
import org.restlet.data.Protocol;
import org.restlet.resource.Directory;
import org.restlet.routing.VirtualHost;

/**
*
* @author chung
*/
public class Server {

   public static void main(String[] args){
       // Create a component
          Component component = new Component();

          component.getServers().add(Protocol.HTTP, 3000);

          component.getClients().add(Protocol.FILE);


          LocalReference javadoc =
                   LocalReference.createFileReference(
                 AbstractResource.javadocDir);

          LocalReference home =
                  LocalReference.createFileReference(
                 AbstractResource.HTMLDir);


          Directory javadocDirectory = new
Directory(component.getContext().createChildContext(), javadoc);
          Directory homeDirectory = new
Directory(component.getContext().createChildContext(), home);


          Application application = new OpenToxApplication();

          VirtualHost host = new VirtualHost();

          host.attach("/OpenToxServices",application);
          host.attach("",homeDirectory);
          host.attach("/OpenToxServices/javadoc", javadocDirectory);



          component.setDefaultHost(host);
       try {
           component.start();
       } catch (Exception ex) {
           Logger.getLogger(Server.class.getName()).log(Level.SEVERE,
null, ex);
       }

   }

}
********************************************************************

The problem is that when I reload any of the resources that corresponds
to a static HTML file (e.g. the javadoc), I get a status code 405
(Method Not allowed). If I reload the page again, I get the HTML but
without the CSS. I reload it again to get the correct HTML
representation but without the Images contained in it. Another reload
gives once again a status 405, then HTML without css and finally the
correct HTML. This happens each time I press F5 on mozilla BUT NOT if I
request the resource again, i.e. if I retype the URL. Note that this
happens only with the static html files. Other resources that are based
on java classes (MyResource extends ServerResource) don't have such
problems!

Having no idea how to solve that, I just separated the static files from
the service. I set up an apache server on another port (80) to deploy
the static html files and the services run on 3000. However I think
other people are experiencing the same problem, because I had the same
problem on 2 different machines.

I would appreciate any suggestions or ideas on that.

You can find the source code of the application at
http://github.com/sopasakis/yaqp

Thank you in advance,
Sopasakis Pantelis

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2410202

Sopasakis Pantelis

Re: Problem with Reloading

Reply Threaded More More options
Print post
Permalink
Hi Rob,
 Thank you for your prompt reply. I tried both Jetty and the Internal
connector but there was no difference. The problem appeared as soon as I
decided to migrate to restlet 2 m3 from restlet 1.1.5 and 1.1.6 where
the same code did not produce any errors. However, it might be just a
matter of including the appropriate jars in the classpath. Which are the
necessary ones? I tried to include all the jars in the lib/ directory of
restlet 2.0 m3 but I received some error messages...

Best Regards,
Sopasakis Pantelis

On Thu, 2009-10-22 at 09:27 -0400, Rob Heittman wrote:

> Did you try it to see if you get the same behavior using a connector
> other than Grizzly?  (e.g. Jetty or the included HTTP connector)  On
> refresh, most Mozilla based browsers will try a conditional GET first
> to see if the resource has changed, then if the server indicates that
> it has changed, will repeat with the full GET.  The weird behavior you
> describe is also found when running under Tomcat 5 if you don't send a
> large enough entity from Restlet ... where that first conditional GET
> will fail and cause the same symptoms in the browser.  So I'm
> wondering if it's connector-specific here, too.
>
> On Thu, Oct 22, 2009 at 8:38 AM, Sopasakis Pantelis
> <[hidden email]> wrote:
>         Dear List,
>          Hi for the first time, cause I'm a new member. I've developed
>         a web
>         service based on Restlet 1.1.5 which runs as a standalone
>         application
>         using Grizzly. I deciided to migrate to Restlet version 2.0.
>         m3 and
>         after some refactoring and changes in my code, I managed to
>         make the
>         whole thing work just fine!
>        
>         In the server class, I attach both an application and some
>         static html
>         files including a javadoc directory. This is the server class:
>        
>        
>         *******************************************************************
>        
>         package org.opentox.server;
>        
>         import java.util.logging.Level;
>         import java.util.logging.Logger;
>         import org.opentox.Applications.OpenToxApplication;
>         import org.opentox.Resources.AbstractResource;
>         import org.restlet.Application;
>         import org.restlet.Component;
>         import org.restlet.data.LocalReference;
>         import org.restlet.data.Protocol;
>         import org.restlet.resource.Directory;
>         import org.restlet.routing.VirtualHost;
>        
>         /**
>         *
>         * @author chung
>         */
>         public class Server {
>        
>            public static void main(String[] args){
>                // Create a component
>                   Component component = new Component();
>        
>                   component.getServers().add(Protocol.HTTP, 3000);
>        
>                   component.getClients().add(Protocol.FILE);
>        
>        
>                   LocalReference javadoc =
>                            LocalReference.createFileReference(
>                          AbstractResource.javadocDir);
>        
>                   LocalReference home =
>                           LocalReference.createFileReference(
>                          AbstractResource.HTMLDir);
>        
>        
>                   Directory javadocDirectory = new
>         Directory(component.getContext().createChildContext(),
>         javadoc);
>                   Directory homeDirectory = new
>         Directory(component.getContext().createChildContext(), home);
>        
>        
>                   Application application = new OpenToxApplication();
>        
>                   VirtualHost host = new VirtualHost();
>        
>                   host.attach("/OpenToxServices",application);
>                   host.attach("",homeDirectory);
>                   host.attach("/OpenToxServices/javadoc",
>         javadocDirectory);
>        
>        
>        
>                   component.setDefaultHost(host);
>                try {
>                    component.start();
>                } catch (Exception ex) {
>        
>          Logger.getLogger(Server.class.getName()).log(Level.SEVERE,
>         null, ex);
>                }
>        
>            }
>        
>         }
>         ********************************************************************
>        
>         The problem is that when I reload any of the resources that
>         corresponds
>         to a static HTML file (e.g. the javadoc), I get a status code
>         405
>         (Method Not allowed). If I reload the page again, I get the
>         HTML but
>         without the CSS. I reload it again to get the correct HTML
>         representation but without the Images contained in it. Another
>         reload
>         gives once again a status 405, then HTML without css and
>         finally the
>         correct HTML. This happens each time I press F5 on mozilla BUT
>         NOT if I
>         request the resource again, i.e. if I retype the URL. Note
>         that this
>         happens only with the static html files. Other resources that
>         are based
>         on java classes (MyResource extends ServerResource) don't have
>         such
>         problems!
>        
>         Having no idea how to solve that, I just separated the static
>         files from
>         the service. I set up an apache server on another port (80) to
>         deploy
>         the static html files and the services run on 3000. However I
>         think
>         other people are experiencing the same problem, because I had
>         the same
>         problem on 2 different machines.
>        
>         I would appreciate any suggestions or ideas on that.
>        
>         You can find the source code of the application at
>         http://github.com/sopasakis/yaqp
>        
>         Thank you in advance,
>         Sopasakis Pantelis
>        
>         ------------------------------------------------------
>         http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2410202
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2410601
jlouvel

RE: Problem with Reloading

Reply Threaded More More options
Print post
Permalink
Kalimera Sopasakis,

This is due to a bug in ServerResource in the conditional processing. Good
news: it was fixed in recent snapshots:
http://www.restlet.org/downloads/unstable

Could you try again and let us know?

Best regards,
Jerome Louvel
--
Restlet ~ Founder and Lead developer ~ http://www.restlet.org
Noelios Technologies ~ Co-founder ~ http://www.noelios.com


-----Message d'origine-----
De : Sopasakis Pantelis [mailto:[hidden email]]
Envoyé : vendredi 23 octobre 2009 12:23
À : [hidden email]
Objet : Re: Problem with Reloading

Hi Rob,
 Thank you for your prompt reply. I tried both Jetty and the Internal
connector but there was no difference. The problem appeared as soon as I
decided to migrate to restlet 2 m3 from restlet 1.1.5 and 1.1.6 where
the same code did not produce any errors. However, it might be just a
matter of including the appropriate jars in the classpath. Which are the
necessary ones? I tried to include all the jars in the lib/ directory of
restlet 2.0 m3 but I received some error messages...

Best Regards,
Sopasakis Pantelis

On Thu, 2009-10-22 at 09:27 -0400, Rob Heittman wrote:

> Did you try it to see if you get the same behavior using a connector
> other than Grizzly?  (e.g. Jetty or the included HTTP connector)  On
> refresh, most Mozilla based browsers will try a conditional GET first
> to see if the resource has changed, then if the server indicates that
> it has changed, will repeat with the full GET.  The weird behavior you
> describe is also found when running under Tomcat 5 if you don't send a
> large enough entity from Restlet ... where that first conditional GET
> will fail and cause the same symptoms in the browser.  So I'm
> wondering if it's connector-specific here, too.
>
> On Thu, Oct 22, 2009 at 8:38 AM, Sopasakis Pantelis
> <[hidden email]> wrote:
>         Dear List,
>          Hi for the first time, cause I'm a new member. I've developed
>         a web
>         service based on Restlet 1.1.5 which runs as a standalone
>         application
>         using Grizzly. I deciided to migrate to Restlet version 2.0.
>         m3 and
>         after some refactoring and changes in my code, I managed to
>         make the
>         whole thing work just fine!
>        
>         In the server class, I attach both an application and some
>         static html
>         files including a javadoc directory. This is the server class:
>        
>        
>
*******************************************************************

>        
>         package org.opentox.server;
>        
>         import java.util.logging.Level;
>         import java.util.logging.Logger;
>         import org.opentox.Applications.OpenToxApplication;
>         import org.opentox.Resources.AbstractResource;
>         import org.restlet.Application;
>         import org.restlet.Component;
>         import org.restlet.data.LocalReference;
>         import org.restlet.data.Protocol;
>         import org.restlet.resource.Directory;
>         import org.restlet.routing.VirtualHost;
>        
>         /**
>         *
>         * @author chung
>         */
>         public class Server {
>        
>            public static void main(String[] args){
>                // Create a component
>                   Component component = new Component();
>        
>                   component.getServers().add(Protocol.HTTP, 3000);
>        
>                   component.getClients().add(Protocol.FILE);
>        
>        
>                   LocalReference javadoc =
>                            LocalReference.createFileReference(
>                          AbstractResource.javadocDir);
>        
>                   LocalReference home =
>                           LocalReference.createFileReference(
>                          AbstractResource.HTMLDir);
>        
>        
>                   Directory javadocDirectory = new
>         Directory(component.getContext().createChildContext(),
>         javadoc);
>                   Directory homeDirectory = new
>         Directory(component.getContext().createChildContext(), home);
>        
>        
>                   Application application = new OpenToxApplication();
>        
>                   VirtualHost host = new VirtualHost();
>        
>                   host.attach("/OpenToxServices",application);
>                   host.attach("",homeDirectory);
>                   host.attach("/OpenToxServices/javadoc",
>         javadocDirectory);
>        
>        
>        
>                   component.setDefaultHost(host);
>                try {
>                    component.start();
>                } catch (Exception ex) {
>        
>          Logger.getLogger(Server.class.getName()).log(Level.SEVERE,
>         null, ex);
>                }
>        
>            }
>        
>         }
>
********************************************************************

>        
>         The problem is that when I reload any of the resources that
>         corresponds
>         to a static HTML file (e.g. the javadoc), I get a status code
>         405
>         (Method Not allowed). If I reload the page again, I get the
>         HTML but
>         without the CSS. I reload it again to get the correct HTML
>         representation but without the Images contained in it. Another
>         reload
>         gives once again a status 405, then HTML without css and
>         finally the
>         correct HTML. This happens each time I press F5 on mozilla BUT
>         NOT if I
>         request the resource again, i.e. if I retype the URL. Note
>         that this
>         happens only with the static html files. Other resources that
>         are based
>         on java classes (MyResource extends ServerResource) don't have
>         such
>         problems!
>        
>         Having no idea how to solve that, I just separated the static
>         files from
>         the service. I set up an apache server on another port (80) to
>         deploy
>         the static html files and the services run on 3000. However I
>         think
>         other people are experiencing the same problem, because I had
>         the same
>         problem on 2 different machines.
>        
>         I would appreciate any suggestions or ideas on that.
>        
>         You can find the source code of the application at
>         http://github.com/sopasakis/yaqp
>        
>         Thank you in advance,
>         Sopasakis Pantelis
>        
>         ------------------------------------------------------
>
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=24102
02
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=24106
01

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2412143
Sopasakis Pantelis

RE: Problem with Reloading

Reply Threaded More More options
Print post
Permalink
Cher Jerome,
 Je n'ai pas eu le temps pour faire cela mais je l'essayerai et tu fais
savoir ;-)

 Well not being very confident for my skills in French, I was saying
that I didn't have much time to try that and I've already set up an
apache for my static files. But I'll try that out and let you know!
Thanks for the reply!

Best Regards,
Pantelis

On Wed, 2009-10-28 at 15:48 +0100, Jerome Louvel wrote:

> Kalimera Sopasakis,
>
> This is due to a bug in ServerResource in the conditional processing. Good
> news: it was fixed in recent snapshots:
> http://www.restlet.org/downloads/unstable
>
> Could you try again and let us know?
>
> Best regards,
> Jerome Louvel
> --
> Restlet ~ Founder and Lead developer ~ http://www.restlet.org
> Noelios Technologies ~ Co-founder ~ http://www.noelios.com
>
>
> -----Message d'origine-----
> De : Sopasakis Pantelis [mailto:[hidden email]]
> Envoyé : vendredi 23 octobre 2009 12:23
> À : [hidden email]
> Objet : Re: Problem with Reloading
>
> Hi Rob,
>  Thank you for your prompt reply. I tried both Jetty and the Internal
> connector but there was no difference. The problem appeared as soon as I
> decided to migrate to restlet 2 m3 from restlet 1.1.5 and 1.1.6 where
> the same code did not produce any errors. However, it might be just a
> matter of including the appropriate jars in the classpath. Which are the
> necessary ones? I tried to include all the jars in the lib/ directory of
> restlet 2.0 m3 but I received some error messages...
>
> Best Regards,
> Sopasakis Pantelis
>
> On Thu, 2009-10-22 at 09:27 -0400, Rob Heittman wrote:
> > Did you try it to see if you get the same behavior using a connector
> > other than Grizzly?  (e.g. Jetty or the included HTTP connector)  On
> > refresh, most Mozilla based browsers will try a conditional GET first
> > to see if the resource has changed, then if the server indicates that
> > it has changed, will repeat with the full GET.  The weird behavior you
> > describe is also found when running under Tomcat 5 if you don't send a
> > large enough entity from Restlet ... where that first conditional GET
> > will fail and cause the same symptoms in the browser.  So I'm
> > wondering if it's connector-specific here, too.
> >
> > On Thu, Oct 22, 2009 at 8:38 AM, Sopasakis Pantelis
> > <[hidden email]> wrote:
> >         Dear List,
> >          Hi for the first time, cause I'm a new member. I've developed
> >         a web
> >         service based on Restlet 1.1.5 which runs as a standalone
> >         application
> >         using Grizzly. I deciided to migrate to Restlet version 2.0.
> >         m3 and
> >         after some refactoring and changes in my code, I managed to
> >         make the
> >         whole thing work just fine!
> >        
> >         In the server class, I attach both an application and some
> >         static html
> >         files including a javadoc directory. This is the server class:
> >        
> >        
> >
> *******************************************************************
> >        
> >         package org.opentox.server;
> >        
> >         import java.util.logging.Level;
> >         import java.util.logging.Logger;
> >         import org.opentox.Applications.OpenToxApplication;
> >         import org.opentox.Resources.AbstractResource;
> >         import org.restlet.Application;
> >         import org.restlet.Component;
> >         import org.restlet.data.LocalReference;
> >         import org.restlet.data.Protocol;
> >         import org.restlet.resource.Directory;
> >         import org.restlet.routing.VirtualHost;
> >        
> >         /**
> >         *
> >         * @author chung
> >         */
> >         public class Server {
> >        
> >            public static void main(String[] args){
> >                // Create a component
> >                   Component component = new Component();
> >        
> >                   component.getServers().add(Protocol.HTTP, 3000);
> >        
> >                   component.getClients().add(Protocol.FILE);
> >        
> >        
> >                   LocalReference javadoc =
> >                            LocalReference.createFileReference(
> >                          AbstractResource.javadocDir);
> >        
> >                   LocalReference home =
> >                           LocalReference.createFileReference(
> >                          AbstractResource.HTMLDir);
> >        
> >        
> >                   Directory javadocDirectory = new
> >         Directory(component.getContext().createChildContext(),
> >         javadoc);
> >                   Directory homeDirectory = new
> >         Directory(component.getContext().createChildContext(), home);
> >        
> >        
> >                   Application application = new OpenToxApplication();
> >        
> >                   VirtualHost host = new VirtualHost();
> >        
> >                   host.attach("/OpenToxServices",application);
> >                   host.attach("",homeDirectory);
> >                   host.attach("/OpenToxServices/javadoc",
> >         javadocDirectory);
> >        
> >        
> >        
> >                   component.setDefaultHost(host);
> >                try {
> >                    component.start();
> >                } catch (Exception ex) {
> >        
> >          Logger.getLogger(Server.class.getName()).log(Level.SEVERE,
> >         null, ex);
> >                }
> >        
> >            }
> >        
> >         }
> >
> ********************************************************************
> >        
> >         The problem is that when I reload any of the resources that
> >         corresponds
> >         to a static HTML file (e.g. the javadoc), I get a status code
> >         405
> >         (Method Not allowed). If I reload the page again, I get the
> >         HTML but
> >         without the CSS. I reload it again to get the correct HTML
> >         representation but without the Images contained in it. Another
> >         reload
> >         gives once again a status 405, then HTML without css and
> >         finally the
> >         correct HTML. This happens each time I press F5 on mozilla BUT
> >         NOT if I
> >         request the resource again, i.e. if I retype the URL. Note
> >         that this
> >         happens only with the static html files. Other resources that
> >         are based
> >         on java classes (MyResource extends ServerResource) don't have
> >         such
> >         problems!
> >        
> >         Having no idea how to solve that, I just separated the static
> >         files from
> >         the service. I set up an apache server on another port (80) to
> >         deploy
> >         the static html files and the services run on 3000. However I
> >         think
> >         other people are experiencing the same problem, because I had
> >         the same
> >         problem on 2 different machines.
> >        
> >         I would appreciate any suggestions or ideas on that.
> >        
> >         You can find the source code of the application at
> >         http://github.com/sopasakis/yaqp
> >        
> >         Thank you in advance,
> >         Sopasakis Pantelis
> >        
> >         ------------------------------------------------------
> >
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=24102
> 02
> >
>
> ------------------------------------------------------
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=24106
> 01
>
> ------------------------------------------------------
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2412143
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2414551