InconnectRemoteServiceException: это приложение устарело, нажмите кнопку обновления в браузере.

Мой проект GWT работал нормально, но сегодня, после некоторых изменений и добавления новых функций, один асинхронный вызов не выполняется. Исключение составляет «Это приложение устарело, нажмите кнопку обновления в браузере». все остальные асинхронные вызовы выполняются.

 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)

Клиент:

     public void onClick(ClickEvent event) {

                            fService.getRepositories(repocallback);

        }
    });

Интерфейс

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

    FCollection getRepositories();
 }

Асинхронный интерфейс

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

Услуга

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

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

Сервер

 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>

Кто-нибудь, помогите мне решить эту проблему.


person NewCodeLearner    schedule 01.03.2012    source источник


Ответы (3)


Эта ошибка возникает, если код Javascript, работающий в браузере, отличается от версии Javascript, развернутой на сервере. В этом случае в коде JavaScript в браузере вызывается метод на сервере через Async, и количество параметров или типов параметров этого метода изменилось на сервере, этот метод отсутствует, поскольку серверная сторона GWT не может найти метод с этим количество параметров или типов, так как методы на сервере новее. Это может произойти, если в браузере все еще есть кешированный GWT Javascript, и когда вы запускаете браузер, он не загружает новые файлы JavaScript с сервера, а берет локальные файлы из кеша. Принуждая браузер с помощью Ctrl-F5 обновить локальную кешированную версию в браузере, она исчезнет, ​​так как будет получена новая версия с сервера, и эта проблема должна быть исправлена. В производственной среде эта проблема может быть вызвана тем, что в настройках кэша веб-сервера или сервера Java не указано, что файл nocache недействителен. См. также http://code.google.com/webtoolkit/doc/latest/DevGuideCompilingAndDebugging.html#perfect_caching

person Hilbrand Bouwkamp    schedule 01.03.2012

Ошибка может быть устранена одним из следующих способов:

  1. очистка кеша браузера
  2. очистка кеша веб-сервера
  3. очистка файлов классов и перестройка вашего проекта. Вы можете перестроить свой проект, запустив этапы «очистить» и «установить» maven или меню «Сборка -> Перестроить проект» в IntellijIdea и меню «Проект -> Очистить» в Eclipse.
person Gat    schedule 16.09.2017
comment
Шаг 3 работал для меня. По-видимому, некоторые устаревшие файлы вызывали конфликты. - person xji; 05.02.2018

После внесения изменений на стороне сервера в ваш код вам необходимо перезапустить проект или перезагрузить веб-сервер. Это решит проблему.

person Anish    schedule 21.03.2013