![](/img/trans.png)
[英]to implement OData services, which is better Apache Olingo or OData4j?
[英]Odata with Olingo or Odata4j
我在我脑海里。
在最广泛的层面上,我试图将Odata接口暴露给由使用Mule编写的服务公开的现有数据池。 当我调用我的Mule服务时,如果我检测到该URL是Odata格式,我想将处理委托给用Java编写的东西,然后将该组件的响应反馈给我的调用者。
我找到了Olingo和OData4j库。 我的问题是,这些从构建Web服务开始。 但这对我来说太过分了。 我有一个Web服务。 我需要了解的是我需要实现哪些组件才能将URL(我手头上的)传递给Odata解析器,而Odata解析器将调用数据提供程序。
我对这项技术感到有些失落。 有人能指出我一个非常基本的教程,清楚地描述了这一点。 或者,他们可以给我一些步骤:“你必须实现A,B和C,然后将你的URL传递给C.foo()”?
我已经尝试了两个库的入门文档,但它们都以“首先我们将实现一个Web服务”开头,并且没有清楚地描述(至少对我来说)离开的地方和纯粹的Odata设置。
谢谢。
以下是帮助您开始使用来自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 Connector甚至是一个轮询http连接器来读取。 可以使用Java输入流将数据流式传输为默认行为,也可以将其转换为字符串(对象为字符串)。
一个简单的java组件使用(OData4j)可以处理你的内容..它听起来像一个骡子流上的2个简单组件。
[R
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.