GWT RPC GWTTestCase + GUICE 2.0 - PullRequest
0 голосов
/ 13 июля 2011

Я пытаюсь создать приложение с GWT на внешнем интерфейсе и GUICE на внутреннем сервере, которое подается в Google App Engine.

Я создал очень простое приложение, используя пример настройки

http://stuffthathappens.com/blog/2009/09/14/guice-with-gwt/#comment-49355

Приложение работает нормально, однако я хотел добавить несколько юнит-тестов для вызовов GWT RPC,

Я пытаюсь использовать GWTTestCase, как показано ниже: `public void testContactMessageService () {

    ContactMessage message = new ContactMessage();
    message.setName("Jeff");
    message.setMessage("Just wanted to say I'm a fan.");
    message.setEmail("man.nick.utd@gmail.com");

    ContactMessageServiceAsync contactMessageService = GWT.create(ContactMessageService.class);

    contactMessageService.sendMessage(message, 
                new AsyncCallback<String>() {
                    public void onFailure(Throwable caught) {
                        // Show the RPC error message to the user
                        System.out.println(caught);
                        fail("big time failure");
                        finishTest();
                    }

                    public void onSuccess(String result) {
                        System.out.println("success, biatch");
                        assertTrue(true);
                        finishTest();
                    }
                });
      delayTestFinish(1000);
  }

` / **

Однако, когда я запускаю тест, он терпит неудачуи на консоли он печатает

[WARN] 404 - POST /com.resume.Contacthandler.JUnit/GWT.rpc (192.168.0.11) 1425 байт. Заголовки запроса Host: 192.168.0.11:4016 User-Agent:Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9.0.19) Gecko / 2010031422 Firefox / 3.0.19 Accept-Language: en-us Accept: / Подключение: Keep-Живой реферер: 192.168.0.11:4016/com.resume.Contacthandler.JUnit/junit.html?gwt.codesvr=192.168.0.11:4012 X-GWT-перестановка: HostedMode X-GWT-Module-Base: 192.168.0.11:4016/com.resume.Contacthandler.JUnit/ Content-Type: text / x-gwt-rpc;charset = utf-8 Content-Length: 285 заголовки ответа Content-Type: text / html;charset = iso-8859-1 Content-Length: 1425 com.google.gwt.user.client.rpc.StatusCodeException: 404 ОШИБКА HTTP: 404 NOT_FOUND RequestURI = / com.resume.Contacthandler.JUnit / GWT.rpc

Исходя из этого, я предполагаю, что что-то на стороне сервера с Guice не настраивается.

Как настроить сервлеты Guice на стороне сервера при запуске GWTTestCases?

1 Ответ

1 голос
/ 01 августа 2011

Существуют гораздо более простые способы заставить Guice и GWT работать, чем подход, описанный в блоге stuffthat.Например, следующий код - это большая часть того, что вам нужно сделать, чтобы запустить и запустить сервлет.Это не касается кода GWT, поэтому его легко протестировать с помощью чистых JRE-тестов - вам просто нужно установить тестовый инжектор и получить экземпляр Service Impl.

serve("/myapp/importservice").with(SourceImportServiceImpl.class);


@Singleton
public class SourceImportServiceImpl extends RemoteServiceServlet {

  private Provider<SimpleDao> daoProvider;

  @Inject
  public SourceImportServiceImpl(Provider<SimpleDao> daoProvider) {
    this.daoProvider = daoProvider;
  }

 ... RPC method implementations
}
...