/ / GWT, модифициращ код, който използва InputStreamReader и java.net.URL клас, за да изпрати HashMap или друг обект чрез Post? - java, ajax, gwt, rpc

GWT, модифициращ код, който използва InputStreamReader и java.net.URL клас, за да изпрати HashMap или друг обект чрез Post? - java, ajax, gwt, rpc

Аз съм сравнително нов за GWT и се опитвамсвържете нещата, за да може отделно приложение GWT да взаимодейства с пролетно приложение. Успях да накарам това да работи там, където имам клас, който се разширява RemoteServiceServlet и вече е в състояние успешно да направи GETзаявка за моето пролетно приложение и да получите отговор. Въпреки че това е добра отправна точка, аз бих искал да разбера как сега да мога да изпратя действителен обект от GWT (като само HashMap за тестване) до Spring чрез метод POST.

Ще се радвам на всеки съвет по този въпрос, който да ме насочив правилната посока, аз не знам много за това и гледах уроци, но продължавам да се обърквам малко и не съм съвсем сигурен как да се опитам да го изпълня. На тази бележка в кода по-долу не съм съвсем сигурно, че дори и в кой момент обаждането всъщност се прави на пролетното приложение, е кога 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();
}

Отговори:

1 за отговор № 1

Можете да създадете POST заявки чрез URLConnection: http://www.exampledepot.com/egs/java.net/Post.html

Ако вашият Spring сървър отговаря с JSON, можете да използвате GSON за да се свържете с вашите класове или ако той върне XML можете използвайте JAXB.

Също така има възможност да се говори с Spring сървъра директно от GWT чрез заявки за различни сайтове, В този случай Spring сървърът трябва да връща JSON.


0 за отговор № 2

Най-чистият подход би бил да се върви с чистоGWT стек (т.е. gwt-изпращане, gin и guice.) За този подход разгледайте проекта на gwt-платформата, изчистете gwt клиент / сървър и DI рамката, всички превърнати в едно цяло.

Ако нямате лукса да сменитетехнологичен стек и вашият сървър вече е изграден или сте по-удобни с пролетната рамка на DI. Можете да интегрирате пролетните сервлети, като вземете подход, подобен на проекта spring4gwt.

с spring4gwt изглежда всичко, което трябва да направите, е да идентифицирате пролетната услуга, която искате да интегрирате във вашия GWT клиент и да определите стандартните класове на RemoteService на клиента.

Най-новите версии на GWT автоматично ще обработват сериализацията за всички класове, маркирани Serializable (включва HashMap) или IsSerializable (за персонализирани класове данни.) Вижте документи за сериализация на gwt.