Одата с Олинго или Одата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 простых компонента в потоке мула.

р

Другие вопросы по тегам