【问题标题】:Odata with Olingo or Odata4j使用 Olingo 或 Odata4j 的 Odata
【发布时间】:2013-11-25 01:48:38
【问题描述】:

我在我的头上。

在最广泛的层面上,我正在尝试将 Odata 接口公开给由使用 Mule 编写的服务公开的现有数据池。当我的 Mule 服务被调用时,如果我检测到 URL 是 Odata 格式,我想将处理委托给用 Java 编写的东西,然后将该组件的响应反馈给我的调用者。

我找到了 Olingo 和 OData4j 库。我的问题是这些都是从构建 Web 服务开始的。但这对我来说太上游了。我有一个网络服务。我需要了解的是,我需要实现哪些组件才能将 URL(我手头的)传递给 Odata 解析器,而 Odata 解析器又会调用数据提供者。

我对这项技术有点迷茫。有人可以指点我一个非常基本的教程,它清楚地描述了这一点。或者,他们能否给我几个步骤,例如:“您必须实现 A、B 和 C,然后将您的 URL 传递给 C.foo()”?

我已经为这两个库尝试了入门文档,但它们都以“首先我们将实现 Web 服务”开头,并且没有清楚地描述(至少对我而言)离开的地方和纯 Odata 集在。

谢谢。

【问题讨论】:

标签: java mule odata odata4j olingo


【解决方案1】:

以下代码将帮助您开始使用通过 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());
    }

【讨论】:

    【解决方案2】:

    这听起来很像我们阅读 rss 或其他数据馈送的方式

    由于您有一个 url,它可以被 Http 连接器甚至轮询 http 连接器读取。 数据可以使用默认行为的 Java 输入流进行流式传输或转换为字符串(对象到字符串)。

    一个使用 (OData4j) 的简单 java 组件可以处理您的内容.. 听起来像是 mule 流上的 2 个简单组件。

    R

    【讨论】:

      猜你喜欢
      • 2016-03-18
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      相关资源
      最近更新 更多