Pregunta IncompatibleRemoteServiceException: esta aplicación no está actualizada, haga clic en el botón Actualizar en su navegador


Mi proyecto GWT funcionaba bien, pero hoy, después de algunos cambios y agregando nuevas características, la llamada asincrónica no se ejecuta. La excepción es "Esta aplicación está fuera de fecha, haga clic en el botón Actualizar en su navegador ". Se ejecutan llamadas asíncronas.

 An IncompatibleRemoteServiceException was thrown while processing this call.
 com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: This application is out of date, please click the refresh button on your browser. ( Blocked attempt to access interface 'com.client.FInterface', which is not implemented by 'com.server.FServiceImpl'; this is either misconfiguration or a hack attempt )
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:252)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:206)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)

Cliente:

     public void onClick(ClickEvent event) {

                            fService.getRepositories(repocallback);

        }
    });

Interfaz

   @RemoteServiceRelativePath("init")
  public interface FInterface extends RemoteService{    

    FCollection getRepositories();
 }

AsyncInterface

  public interface FInterfaceAsync {
void getRepositories(AsyncCallback<FCollection> repositoryCallback);
}

Servicio

   public class FService implements FInterfaceAsync {
FInterfaceAsync service =(FInterfaceAsync)GWT.create(FInterface.class);
ServiceDefTarget endpoint = (ServiceDefTarget) service;

    public FService(){
    endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() + "init");
     }
        }

Servidor

 public class FServiceImpl extends RemoteServiceServlet implements  FInterface {

       public FilnetFolderCollection getRepositories() {
       } 

 }

XML:

   <servlet>
   <servlet-name>FServlet</servlet-name>
  <servlet-class>com.server.FServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
  <servlet-name>FServlet</servlet-name>
  <url-pattern>/FServiceImpl</url-pattern>
  </servlet-mapping>

Alguien me ayude a solucionar este problema.


5
2018-03-01 16:35


origen


Respuestas:


Este error se produce si el código JavaScript que se está ejecutando en el navegador es una versión diferente a la que se implementó Javascript en el servidor. En ese caso, en el código JavaScript del navegador se invoca un método en el servidor mediante Async y el número de parámetros o tipos de parámetros de ese método ha cambiado en el servidor, este método no está presente ya que el servidor GWT no puede encontrar un método con ese Número de parámetros o tipos, ya que los métodos en el servidor son más nuevos. Esto puede suceder si el navegador todavía tiene el GWT Javascript almacenado en caché y cuando inicia el navegador no cargará los nuevos archivos JavaScript del servidor, sino que tomará los archivos locales del caché. Al forzar el navegador con Ctrl-F5 para actualizar la versión en caché local en el navegador se habrá ido ya que la nueva versión del servidor se recuperará y este problema debería solucionarse. En producción, este problema puede deberse a que la configuración de caché del servidor web o del servidor java no está configurada para invalidar el archivo nocache. Ver también http://code.google.com/webtoolkit/doc/latest/DevGuideCompilingAndDebugging.html#perfect_caching


7
2018-03-01 20:51



El error se puede resolver de una de las siguientes maneras:

  1. limpiando el caché del navegador
  2. limpiando el caché del servidor web
  3. Borrar archivos de clase y reconstruir su proyecto. Puede reconstruir su proyecto ejecutando las fases "limpiar" e "instalar" de Maven o el menú "Build -> Rebuild Project" de IntellijIdea y el menú "Proyecto -> Limpiar" en Eclipse.

1
2017-09-16 14:08



Después de realizar cambios en el servidor en su código, debe reiniciar el proyecto o volver a cargar el servidor web. Resolvería el problema.


0
2018-03-21 07:38