我太头疼了。
在最广泛的层面上,我试图将Odata接口公开给使用Mule编写的服务所公开的现有数据池。当我的Mule服务被调用时,如果我检测到URL是Odata格式,我希望将处理委托给用Java编写的东西,然后将来自该组件的响应反馈给我的调用者。
我找到了Olingo和OData4j库。我的问题是,这些都是从构建Web服务开始的。但这对我来说太上游了。我有一个Web服务。我需要了解的是,为了将URL (我手中的URL)传递给Odata解析器,Odata解析器将调用数据提供程序,需要实现哪些组件。
我对这项技术有点迷惑。谁能给我一个非常基本的教程,清楚地描述这一点。或者,他们可以给我几个步骤,比如:“你必须实现A,B&C,然后把你的网址传递给C.foo()"?
我已经尝试过这两个库的入门文档,但它们都以“首先我们将实现一个Web服务”开头,并且没有(至少在我看来)清楚地描述了这将在何处留下纯Odata集。
谢谢。
发布于 2014-05-08 18:56:39
以下代码将帮助您开始使用通过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 go,请使用以下代码
ODataConsumer demo_consumer= ODataConsumers.create(/*your URL*/);
Enumerable<EntitySetInfo> demo_entitySetList = demo_consumer.getEntitySets();
for (EntitySetInfo entitySet : entitySetList) {
System.out.println(entitySet.getHref());
}发布于 2013-11-22 17:28:02
这听起来非常像我们阅读rss或其他数据馈送的方式
因为你有一个url,所以它可以被Http连接器甚至轮询http连接器读取。可以使用Java输入流(默认行为)流式传输数据,也可以将其转换为字符串(对象到字符串)。
一个使用(OData4j)的简单java组件就可以处理您的内容。这听起来像是一个流上的两个简单的组件。
R
https://stackoverflow.com/questions/19937198
复制相似问题