Это довольно просто, даже если вы не используете библиотеку, которая объединяет кусочки (я предполагаю, что Restlet действительно предлагает некоторые упрощения): как вы упомянули, все, что вам нужно, это HTTP-соединение / запрос, и возможность производить (и, вероятно,глотай) XML.Таким образом, помимо вещей, характерных для Restlet (которые, как мы надеемся, могут объяснить другие), есть «партизанский» подход, использующий только отдельные части.
Чтобы получить HTTP-соединение, вы можете просто использовать функциональность JDK (если это делаетне работает, http-клиент apache или async-http-client может предложить больше функциональности);что-то вроде:
URL url = new URL("http://myservice.mycompany.com:8080/path/to/service");
// configure settings here if/as necessary
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// if you need to post stuff, do:
conn.setRequestMethod("POST");
// need to set content type too possibly
conn.setDoOutput(true); // but only if you do POST stuff
OutputStream out = conn.getOutputStream();
// here you would output XML request
//...
out.close();
// and now read response
InputStream in = conn.getInputStream();
// and process it
// ...
in.close();
Теперь, что касается создания / потребления XML, вы можете использовать все обычные инструменты, которые читают / пишут XML с использованием потоков ввода / вывода.Если вам нравится привязка данных (Java POJOs к / из XML), JAXB - это путь (javax.xml.bind. *);Реализация по умолчанию в JDK 1.6 и выше.
В качестве альтернативы вы можете просто использовать реализацию Stax (javax.xml.stream. *), Такую как Woodstox , для чтения / записи XML с помощью простых вызовов;для получения бонусных очков, посмотрите StaxMate , который немного упрощает этот стиль.