Я использовал плагин GWT Maven (версия 2.3.0) для генерации проекта GWT. Приятно то, что подключаемый модуль Maven заботится о создании асинхронной части службы. Кажется, что все работает, но сервлет не отвечает как при работе в размещенном режиме (запущенном в Jetty), так и при развертывании полученной WAR в Tomcat.
Моя проблема в том, что сервлет просто не отвечает. Обратный вызов onSuccess()
вызывается, но я получаю только значения null
. Я в значительной степени скопировал учебник с домашней страницы GWT, поэтому мой сервис создан следующим образом:
final StatusServiceAsync statusService = GWT.create(StatusService.class);
Вот мой сервисный интерфейс:
@RemoteServiceRelativePath("status")
public interface StatusService extends RemoteService
{
String getStatus(String someInput);
}
Как уже упоминалось, асинхронный аналог создается плагином Maven. Файл web.xml выглядит следующим образом:
<servlet>
<servlet-name>statusServlet</servlet-name>
<servlet-class>my.package.StatusServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>statusServlet</servlet-name>
<url-pattern>/StatusBoard/status</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>StatusBoard.html</welcome-file>
</welcome-file-list>
Сначала я подумал, что конфигурация совершенно неправильная, поэтому немного поиграл с ней. Когда я изменил значение <servlet-class>
, контейнер сервлетов записал ClassNotFoundException
. Затем я изменил @RemoteServiceRelativePath
Я также получил ошибку. Таким образом, конфигурация не может быть полностью неправильной.
Вот код на стороне сервера (я сократил его, чтобы убедиться, что больше ничего не может пойти не так):
public class StatusServiceImpl extends RemoteServiceServlet implements StatusService
{
private static final long serialVersionUID = 3317511632727461036L;
@Override
public String getStatus(final String someInput)
{
return someInput;
}
}
Извините, что я забыл эту деталь, но иногда отладчик не распознает точку останова в сервлете. Но даже если это так, возвращаемое значение все равно null
.
Любые идеи очень ценятся!