Можно также проверить Restlet, который имеет полные клиентские возможности, больше REST ориентировало это библиотеки низшего уровня, такие как HttpURLConnection или Apache Клиент HTTP (который мы можем усилить как коннекторы).
С наилучшими пожеланиями, Jerome Louvel
Как я упомянул в этот поток , я склонен использовать Джерси , который реализует JAX-RS и идет с хорошим клиентом REST. Хорошая вещь состоит в том при реализации УСПОКОИТЕЛЬНЫХ ресурсов с помощью JAX-RS тогда, клиент Джерси может снова использовать поставщиков объекта таких что касается JAXB/XML/JSON/Atom и т.д - таким образом, можно снова использовать те же объекты на стороне сервера, как Вы используете на клиентском модульном тесте.
, Например вот случай модульного теста от проект Camel Apache, который ищет, полезные нагрузки XML от УСПОКОИТЕЛЬНОГО ресурса (использующий JAXB возражают Конечным точкам). Ресурс (uri), метод определяется в этот базовый класс , который просто использует клиентский API Джерси.
, например,
clientConfig = new DefaultClientConfig();
client = Client.create(clientConfig);
resource = client.resource("http://localhost:8080");
// lets get the XML as a String
String text = resource("foo").accept("application/xml").get(String.class);
BTW я надеюсь, что будущая версия JAX-RS добавляет хороший клиентский API вроде того на Джерси
Я использую Apache HTTPClient для обработки всей стороны HTTP вещей.
я пишу синтаксические анализаторы SAX XML для содержания XML, которое анализирует XML в Вашу объектную модель. Я полагаю, что Axis2 также представляет XML-> Образцовые методы (Ось 1 скрыла эту часть, раздражающе). Генераторы XML тривиально просты.
Это не занимает много времени кодировать и довольно эффективно, по-моему.
Вы можете попробовать Rapa . Сообщите нам свой отзыв о том же. И не стесняйтесь регистрировать проблемы или ожидаемые функции.
Вы можете использовать стандартные API Java SE:
private void updateCustomer(Customer customer) {
try {
URL url = new URL("http://www.example.com/customers");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("PUT");
connection.setRequestProperty("Content-Type", "application/xml");
OutputStream os = connection.getOutputStream();
jaxbContext.createMarshaller().marshal(customer, os);
os.flush();
connection.getResponseCode();
connection.disconnect();
} catch(Exception e) {
throw new RuntimeException(e);
}
}
Или вы можете использовать клиентские API REST, предоставляемые реализациями JAX-RS, такими как Jersey. Эти API проще использовать, но они требуют дополнительных jar-файлов на пути к классу.
WebResource resource = client.resource("http://www.example.com/customers");
ClientResponse response = resource.type("application/xml");).put(ClientResponse.class, "<customer>...</customer.");
System.out.println(response);
Для получения дополнительной информации см .: