Одата с Олинго или Одата4дж
Я нахожусь над моей головой.
На самом широком уровне я пытаюсь представить интерфейс Odata для существующего пула данных, предоставляемых службой, написанной с использованием Mule. Когда вызывается моя служба Mule, если я обнаруживаю, что URL-адрес имеет формат Odata, я хочу делегировать обработку до чего-то написанного на Java, а затем передать ответ от этого компонента обратно моему вызывающему.
Я нашел библиотеки Olingo и OData4j. Моя проблема в том, что они начинаются с создания веб-службы. Но это слишком далеко для меня. У меня есть веб-сервис. Что мне нужно понять, так это то, какие компоненты мне нужно реализовать, чтобы передать URL (который я имею в виду) и далее в анализатор Odata, который, в свою очередь, вызовет поставщика данных.
Я немного потерян с этой технологией. Может кто-нибудь указать мне на очень простой учебник, который четко очерчивает это. Или они могут дать мне пару шагов вроде: "Вы должны внедрить A, B & C и затем передать свой URL в C.foo()"?
Я попробовал документ "Приступая к работе" для обеих библиотек, но обе они начинаются с "сначала мы реализуем веб-сервис" и не четко (по крайней мере, мне) определяют, где это заканчивается, и появляются чистые Odata.
Благодарю.
2 ответа
Ниже приведен код, который поможет вам начать использовать данные из службы, предоставляемой через OData (используя Apache Olingo).
URL url=new URL(/*your url*/);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty(HttpHeaders.ACCEPT,HttpContentType.APPLICATION_XML);
conn.connect();
InputStream content=conn.getInputStream();
Edm edm = EntityProvider.readMetadata(content, false);
После этого вы можете использовать статические методы класса EntityProvider для выполнения различных операций, таких как чтение, обновление, запись
Если вы используете odata4j, используйте следующий код
ODataConsumer demo_consumer= ODataConsumers.create(/*your URL*/);
Enumerable<EntitySetInfo> demo_entitySetList = demo_consumer.getEntitySets();
for (EntitySetInfo entitySet : entitySetList) {
System.out.println(entitySet.getHref());
}
Это звучит очень похоже на то, как мы читаем RSS или другие каналы данных
Поскольку у вас есть URL-адрес, его можно прочитать с помощью Http-коннектора или даже HTTP-коннектора опроса. Данные могут быть переданы с использованием потока ввода Java по умолчанию или преобразованы в строку (объект в строку).
Простой Java-компонент, использующий (OData4j), может обработать ваш контент... это звучит как 2 простых компонента в потоке мула.
р