GWT: Получение 404 при отправке запроса AJAX в моем GWTTestCase - PullRequest
2 голосов
/ 31 октября 2011

Я использую Eclipse Indigo на win XP и пытаюсь написать тестовый пример GWT для моего приложения GWT 2.4.В частности, я пытаюсь протестировать AJAX-запрос, но получаю 404. Я думал, что GWT раскрутит свой собственный сервер в режиме хостинга?Мой код:

public class GetHtmlTest extends GWTTestCase {

    public void gwtSetUp() {
        ...
        submitButton = new Button();
        DOM.setElementAttribute(submitButton.getElement(), "id", Productplus_gwt.SUBMIT_BUTTON_ID);
        ...
    }

    @Test
    public void testSuccessEvent() {    
        nameField.setText(VALID_ID);
        submitButton.click();

        Timer timer = new Timer() {
            public void run() {
                final Element contentDiv = DOM.getElementById(Productplus_gwt.CONTENT_DIV_ID);
                final String divText = contentDiv.getInnerText();
                assertNotNull(divText);
                assertEquals(-1, divText.toLowerCase().indexOf("error") );

                finishTest();
            }
        };
        timer.schedule(100);

        delayTestFinish(2000);
    } // testSuccessEvent

В конечном итоге, нажатие кнопки вызывает этот вызов AJAX ...

        productPlusService.getHtml(docId, new AsyncCallback<String>() {
            public void onFailure(Throwable caught) {
                submitButtonElement.setAttribute("enabled", Boolean.TRUE.toString());
                contentDiv.setInnerHTML("<span>Error: " + caught.getMessage() + "</span>");
            }

            public void onSuccess(String result) {
                submitButtonElement.setAttribute("enabled", Boolean.TRUE.toString());

                contentDiv.setInnerHTML(result);

                // Format tabs
                postHtmlProcessing();
            }
        });

Я запускаю тест, щелкая правой кнопкой мыши по нему, выбирая «Запуск от имени» иGWT Test Case ".Ошибка в консоли была

[WARN] 404 - POST /com.myco.clearing.productplus.Productplus_gwt.JUnit/getHtml (10.40.70.197) 1444 bytes
   Request headers
      Host: 10.40.70.197:2084
      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: */*
      Connection: Keep-Alive
      Referer: http://10.40.70.197:2084/com.myco.clearing.productplus.Productplus_gwt.JUnit/junit-standards.html?gwt.codesvr=10.40.70.197:2080
      X-GWT-Permutation: HostedMode
      X-GWT-Module-Base: http://10.40.70.197:2084/com.myco.clearing.productplus.Productplus_gwt.JUnit/
      Content-Type: text/x-gwt-rpc; charset=utf-8
      Content-Length: 217
   Response headers
      Content-Type: text/html; charset=iso-8859-1
      Content-Length: 1444

Есть идеи, что не так?Спасибо, Дэйв

1 Ответ

4 голосов
/ 01 ноября 2011

Для тестов JUnit вы должны объявить свои сервлеты в модуле gwt.xml, используя элемент <servlet path="..." class="..." /> .

...