GWT, модифицирующий код, который использует InputStreamReader и класс java.net.URL для отправки HashMap или другого объекта через Post? - PullRequest
0 голосов
/ 07 мая 2011

Я довольно новичок в GWT и пытаюсь собрать воедино вещи, чтобы иметь возможность взаимодействовать с отдельным приложением GWT с весенним приложением. Я смог заставить это работать, где у меня есть класс, который расширяет RemoteServiceServlet, и теперь он может успешно выполнить GET-запрос к моему весеннему приложению и получить ответ. Хотя это хорошая отправная точка, я хотел бы выяснить, как теперь можно отправлять фактический объект из GWT (например, просто HashMap для тестирования) в Spring с помощью метода POST.

Буду признателен за любые советы по этому вопросу, чтобы указать мне верное направление, я не очень разбираюсь в этом и смотрю учебные пособия, но я немного запутался и не совсем уверен, как попытаться реализовать этот. На этом примечании в приведенном ниже коде я не совсем уверен, даже в какой момент на самом деле выполняется вызов приложения Spring, это когда new URL создается?

Ниже приведен пример кода, который я использую для выполнения запроса GET от GWT:

private String getSpringResponse(String message) {

    BufferedReader reader = null;
    StringBuilder sb = new StringBuilder();
    try {
        URL url = new URL("http://localhost:8080/spring-hibernate-mysql/test/test/"+message+"/");
        reader = new BufferedReader(new InputStreamReader(url
                .openStream()));

        while(reader.ready()){
            sb.append(reader.readLine());
        }

        reader.close();

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return sb.toString();
}

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Вы можете создавать POST-запросы через URLConnection: http://www.exampledepot.com/egs/java.net/Post.html

Если ваш сервер Spring отвечает с помощью JSON, вы можете использовать GSON для сопоставления с вашими классами или, если он возвращает XML, вы можете использовать JAXB .

Существует также возможность общаться с сервером Spring напрямую из GWT через межсайтовые запросы . В этом случае сервер Spring должен возвращать JSON.

0 голосов
/ 07 мая 2011

Самый чистый подход - использовать чистый стек GWT (т. Е. Gwt-dispatch, gin и guice). Для этого подхода взгляните на проект платформы gwt, чистый клиент-сервер gwt и интегрированную среду DI. в одну.

Если вы не можете позволить себе сменить технологический стек, и ваш сервер уже построен, или вам удобнее использовать Spring DI Framework. Вы можете интегрировать весенние сервлеты, используя подход, аналогичный проекту spring4gwt.

С spring4gwt кажется, что все, что вам нужно сделать, это определить службу Spring, которую вы хотите интегрировать в ваш клиент GWT, и определить стандартные классы RemoteService на клиенте.

Последние версии GWT будут автоматически обрабатывать сериализацию для всех классов, помеченных как Serializable (включая HashMap) или IsSerializable (для пользовательских классов данных.) См. Документация по сериализации gwt .

...