How do I interact with OData from Java?

2019-01-17 10:42发布

问题:

OData is Microsoft's repackaging of its Astoria (now WCF Data Services) RESTful query/update protocol. If I want to use Java to create an OData compatible data source, how do I do that? Similarly, if I want to consume an OData data source from Java, how do I do that?

http://www.odata.org/

Partial answer below.

The OData website suggests that Restlet supports OData. Restlet's API documentation mentions the org.restlet.ext.odata package.

www.restlet.org/

www.restlet.org/documentation/snapshot/jee/ext/org/restlet/ext/odata/package-summary.html

Is this the only answer? Are there blog posts on doing this integration?

回答1:

There is also odata4j.



回答2:

There is a olingo library in java which can be used for RESTful communication with Odata protocol.

you can refer the following link for the reference: https://olingo.apache.org/doc/odata4/index.html

You can find the source code for sample project too from the above link.



回答3:

Any Java library that can consume an Atom feed will be able to read an OData source. Any Java library that can perform the Atom pub protocol will be able to update an OData service.

What you will not be able to do out of the box is perform queries and access the EDM properties. Depending on how loosely coupled you need to be this will either be really easy to do or damn difficult. If you can survive coupling your client to the service then it should be pretty easy with any XML parser to pull the data out of the OData entry.



回答4:

There is a Microsoft blog post with various pointers to OData interoperability resources:

OData interoperability with .NET, Java, PHP, iPhone and more



回答5:

See this: http://blog.noelios.com/2010/03/15/restlet-supports-odata-the-open-data-protocol/ and this: http://wiki.restlet.org/docs_2.0/13-restlet/28-restlet/287-restlet/288-restlet.html

Also there is a growing list of information on OData here: http://odata.org/developers/odata-sdk

hope this helps

Alex



回答6:

There's more info here: http://wiki.restlet.org/docs_2.0/13-restlet/28-restlet/287-restlet.html