| /* |
| * Copyright 2007 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.user.client.rpc; |
| |
| /** |
| * Exception that will be passed to the |
| * {@link AsyncCallback#onFailure(Throwable)} method when an incompatibility is |
| * detected between a {@link RemoteService} client and its corresponding |
| * {@link RemoteService} server. |
| * |
| * <p> |
| * The correct response to receiving an instance of this exception in the |
| * {@link AsyncCallback#onFailure(Throwable)} method is to get the application |
| * into a state where a browser refresh can be done. |
| * </p> |
| * |
| * <p> |
| * This exception can be caused by the following problems: |
| * <ul> |
| * <li>The requested {@link RemoteService} cannot be located via |
| * {@link Class#forName(String)} on the server.</li> |
| * <li>The requested {@link RemoteService} interface is not implemented by the |
| * {@link com.google.gwt.user.server.rpc.RemoteServiceServlet RemoteServiceServlet} |
| * instance which is configured to process the request.</li> |
| * <li>The requested service method is not defined or inherited by the |
| * requested {@link RemoteService} interface.</li> |
| * <li>One of the types used in the {@link RemoteService} method invocation has |
| * had fields added or removed.</li> |
| * <li>The client code receives a type from the server which it cannot |
| * deserialize.</li> |
| * </ul> |
| * </p> |
| * |
| * <p> |
| * Note that on the client, the {@link #getCause()} always return |
| * <code>null</code>. |
| * </p> |
| */ |
| public final class IncompatibleRemoteServiceException extends RuntimeException |
| implements IsSerializable { |
| |
| private static final String DEFAULT_MESSAGE = "This application is out of " |
| + "date, please click the refresh button on your browser."; |
| |
| /** |
| * Constructor used by RPC serialization. Note that the client side code will |
| * always get a generic error message. |
| */ |
| public IncompatibleRemoteServiceException() { |
| super(DEFAULT_MESSAGE); |
| } |
| |
| /** |
| * Constructs an instance with the specified message. |
| */ |
| public IncompatibleRemoteServiceException(String msg) { |
| super(DEFAULT_MESSAGE + " ( " + msg + " )"); |
| } |
| |
| /** |
| * Constructs an instance with the specified message and cause. |
| */ |
| public IncompatibleRemoteServiceException(String msg, Throwable cause) { |
| super(msg, cause); |
| } |
| } |