[
https://issues.apache.org/jira/browse/OLINGO-1216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Feby Baby updated OLINGO-1216:
------------------------------
Description:
I am trying to consume Redfish API which uses OData service in Java using
Spring boot application.
[Redfish—a next generation management standard using a data model
representation inside a hypermedia RESTful interface. The data model is defined
in terms of a standard, machine-readable schema, with the payload of the
messages expressed in JSON and the protocol using OData v4.]
I understand that Olingo and Odata4j are the java libraries for consuming OData
service. I tried using Olingo but getting error as the https server is having a
self-signed certificate. Initially, I tried to access the redfish API using
RestTemplate which worked out well. But for getting @odata.id tag
informations, we need to use the OData specific library.
Sample json output of Redfish API:
{
@odata.context: "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
@odata.id: "/redfish/v1",
@odata.type: "#ServiceRoot.v1_0_2.ServiceRoot",
AccountService: {
@odata.id: "/redfish/v1/Managers/iDRAC.Embedded.1/AccountService"
},
Chassis: {
@odata.id: "/redfish/v1/Chassis"
},
Description: "Root Service",
EventService: {
@odata.id: "/redfish/v1/EventService"
},
Id: "RootService",
JsonSchemas: {
@odata.id: "/redfish/v1/JSONSchemas"
},
Links: {
Sessions: {
@odata.id: "/redfish/v1/Sessions"
}
},
Managers: {
@odata.id: "/redfish/v1/Managers"
},
Name: "Root Service",
RedfishVersion: "1.0.2",
Registries: {
@odata.id: "/redfish/v1/Registries"
},
SessionService: {
@odata.id: "/redfish/v1/SessionService"
},
Systems: {
@odata.id: "/redfish/v1/Systems"
},
Tasks: {
@odata.id: "/redfish/v1/TaskService"
}
}
Code:
ODataClient client = ODataClientFactory.getClient();
String serviceUrl = "https://IP_address/redfish/v1/Systems/";
client.getConfiguration().setHttpClientFactory(new
BasicAuthHttpClientFactory("[uname]", "[pswd]"));
URI absoluteUri = client.newURIBuilder(serviceUrl).build();
ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> request =
client.getRetrieveRequestFactory().getEntitySetIteratorRequest(absoluteUri);
// odata4 sample/server limitation not handling metadata=full
request.setAccept("application/json;odata.metadata=minimal");
ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet,
ClientEntity>> response = request.execute();
ClientEntitySetIterator<ClientEntitySet, ClientEntity> iterator =
response.getBody();
I am getting the following certificate related error while trying to consume
the OData service API:
[Request processing failed; nested exception is
org.apache.olingo.client.api.http.HttpClientException:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find
valid certification path to requested target] with root cause
sun.security.provider.certpath.SunCertPathBuilderException: unable to find
valid certification path to requested target
at
sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
~[na:1.8.0_92]
at
sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
~[na:1.8.0_92]
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
~[na:1.8.0_92]
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
~[na:1.8.0_92]
at
sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
~[na:1.8.0_92]
at sun.security.validator.Validator.validate(Validator.java:260)
~[na:1.8.0_92]
at
sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
~[na:1.8.0_92]
at
sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
~[na:1.8.0_92]
at
sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
~[na:1.8.0_92]
at
sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)
~[na:1.8.0_92]
at
sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
~[na:1.8.0_92]
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
~[na:1.8.0_92]
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
~[na:1.8.0_92]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
~[na:1.8.0_92]
at
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
~[na:1.8.0_92]
at
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
~[na:1.8.0_92]
at
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
~[na:1.8.0_92]
at
org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:573)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:557)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
~[httpclient-4.5.3.jar:4.5.3]
at
org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:301)
~[odata-client-core-4.4.0.jar:na]
at
org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetIteratorRequestImpl.execute(ODataEntitySetIteratorRequestImpl.java:59)
~[odata-client-core-4.4.0.jar:na]
at
org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetIteratorRequestImpl.execute(ODataEntitySetIteratorRequestImpl.java:36)
~[odata-client-core-4.4.0.jar:na]
Kindly help me to resolve the issue.
Please find below the links which I referred.
[https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/][1]
[1]:
https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/
was:
I am trying to consume Redfish API which uses OData service in Java using
Spring boot application.
I understand that Olingo and Odata4j are the java libraries for consuming OData
service. I tried using Olingo but getting error as the https server is having a
self-signed certificate. Initially, I tried to access the redfish API using
RestTemplate which worked out well. But for getting @odata.id tag information,
we need to use the OData specific library.
Sample json output of Redfish API:
{
@odata.context: "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
@odata.id: "/redfish/v1",
@odata.type: "#ServiceRoot.v1_0_2.ServiceRoot",
AccountService: {
@odata.id: "/redfish/v1/Managers/iDRAC.Embedded.1/AccountService"
},
Chassis: {
@odata.id: "/redfish/v1/Chassis"
},
Description: "Root Service",
EventService: {
@odata.id: "/redfish/v1/EventService"
},
Id: "RootService",
JsonSchemas: {
@odata.id: "/redfish/v1/JSONSchemas"
},
Links: {
Sessions: {
@odata.id: "/redfish/v1/Sessions"
}
},
Managers: {
@odata.id: "/redfish/v1/Managers"
},
Name: "Root Service",
RedfishVersion: "1.0.2",
Registries: {
@odata.id: "/redfish/v1/Registries"
},
SessionService: {
@odata.id: "/redfish/v1/SessionService"
},
Systems: {
@odata.id: "/redfish/v1/Systems"
},
Tasks: {
@odata.id: "/redfish/v1/TaskService"
}
}
Code:
ODataClient client = ODataClientFactory.getClient();
String serviceUrl = "https://IP_address/redfish/v1/Systems/";
client.getConfiguration().setHttpClientFactory(new
BasicAuthHttpClientFactory("[uname]", "[pswd]"));
URI absoluteUri = client.newURIBuilder(serviceUrl).build();
ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> request =
client.getRetrieveRequestFactory().getEntitySetIteratorRequest(absoluteUri);
// odata4 sample/server limitation not handling metadata=full
request.setAccept("application/json;odata.metadata=minimal");
ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet,
ClientEntity>> response = request.execute();
ClientEntitySetIterator<ClientEntitySet, ClientEntity> iterator =
response.getBody();
I am getting the following certificate related error while trying to consume
the OData service API:
bq. [Request processing failed; nested exception is
org.apache.olingo.client.api.http.HttpClientException:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find
valid certification path to requested target] with root cause
bq.
bq. sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
bq. at
sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
~[na:1.8.0_92]
bq. at
sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
~[na:1.8.0_92]
bq. at
java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
~[na:1.8.0_92]
bq. at
sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
~[na:1.8.0_92]
bq. at
sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
~[na:1.8.0_92]
bq. at
sun.security.validator.Validator.validate(Validator.java:260) ~[na:1.8.0_92]
bq. at
sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
~[na:1.8.0_92]
bq. at
sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
~[na:1.8.0_92]
bq. at
sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
~[na:1.8.0_92]
bq. at
sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)
~[na:1.8.0_92]
bq. at
sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
~[na:1.8.0_92]
bq. at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
~[na:1.8.0_92]
bq. at
sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[na:1.8.0_92]
bq. at
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
~[na:1.8.0_92]
bq. at
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
~[na:1.8.0_92]
bq. at
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
~[na:1.8.0_92]
bq. at
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
~[na:1.8.0_92]
bq. at
org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:573)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:557)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
~[httpclient-4.5.3.jar:4.5.3]
bq. at
org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:301)
~[odata-client-core-4.4.0.jar:na]
bq. at
org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetIteratorRequestImpl.execute(ODataEntitySetIteratorRequestImpl.java:59)
~[odata-client-core-4.4.0.jar:na]
bq. at
org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetIteratorRequestImpl.execute(ODataEntitySetIteratorRequestImpl.java:36)
~[odata-client-core-4.4.0.jar:na]
bq.
Kindly help me to resolve the issue.
Please find below the links which I referred.
[https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/][1]
[1]:
https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/
> How to consume Odata service having self-signed certificate using Olingo in
> java?
> ---------------------------------------------------------------------------------
>
> Key: OLINGO-1216
> URL: https://issues.apache.org/jira/browse/OLINGO-1216
> Project: Olingo
> Issue Type: Question
> Components: odata4-client
> Affects Versions: (Java) V4 4.4.0
> Environment: java, Spring boot
> Reporter: Feby Baby
> Priority: Blocker
>
> I am trying to consume Redfish API which uses OData service in Java using
> Spring boot application.
> [Redfish—a next generation management standard using a data model
> representation inside a hypermedia RESTful interface. The data model is
> defined in terms of a standard, machine-readable schema, with the payload of
> the messages expressed in JSON and the protocol using OData v4.]
> I understand that Olingo and Odata4j are the java libraries for consuming
> OData service. I tried using Olingo but getting error as the https server is
> having a self-signed certificate. Initially, I tried to access the redfish
> API using RestTemplate which worked out well. But for getting @odata.id tag
> informations, we need to use the OData specific library.
> Sample json output of Redfish API:
> {
> @odata.context: "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
> @odata.id: "/redfish/v1",
> @odata.type: "#ServiceRoot.v1_0_2.ServiceRoot",
> AccountService: {
> @odata.id: "/redfish/v1/Managers/iDRAC.Embedded.1/AccountService"
> },
> Chassis: {
> @odata.id: "/redfish/v1/Chassis"
> },
> Description: "Root Service",
> EventService: {
> @odata.id: "/redfish/v1/EventService"
> },
> Id: "RootService",
> JsonSchemas: {
> @odata.id: "/redfish/v1/JSONSchemas"
> },
> Links: {
> Sessions: {
> @odata.id: "/redfish/v1/Sessions"
> }
> },
> Managers: {
> @odata.id: "/redfish/v1/Managers"
> },
> Name: "Root Service",
> RedfishVersion: "1.0.2",
> Registries: {
> @odata.id: "/redfish/v1/Registries"
> },
> SessionService: {
> @odata.id: "/redfish/v1/SessionService"
> },
> Systems: {
> @odata.id: "/redfish/v1/Systems"
> },
> Tasks: {
> @odata.id: "/redfish/v1/TaskService"
> }
> }
> Code:
> ODataClient client = ODataClientFactory.getClient();
> String serviceUrl = "https://IP_address/redfish/v1/Systems/";
> client.getConfiguration().setHttpClientFactory(new
> BasicAuthHttpClientFactory("[uname]", "[pswd]"));
> URI absoluteUri = client.newURIBuilder(serviceUrl).build();
> ODataEntitySetIteratorRequest<ClientEntitySet, ClientEntity> request =
> client.getRetrieveRequestFactory().getEntitySetIteratorRequest(absoluteUri);
>
> // odata4 sample/server limitation not handling metadata=full
> request.setAccept("application/json;odata.metadata=minimal");
>
> ODataRetrieveResponse<ClientEntitySetIterator<ClientEntitySet,
> ClientEntity>> response = request.execute();
> ClientEntitySetIterator<ClientEntitySet, ClientEntity> iterator =
> response.getBody();
> I am getting the following certificate related error while trying to consume
> the OData service API:
> [Request processing failed; nested exception is
> org.apache.olingo.client.api.http.HttpClientException:
> javax.net.ssl.SSLHandshakeException:
> sun.security.validator.ValidatorException: PKIX path building failed:
> sun.security.provider.certpath.SunCertPathBuilderException: unable to find
> valid certification path to requested target] with root cause
>
> sun.security.provider.certpath.SunCertPathBuilderException: unable to
> find valid certification path to requested target
> at
> sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
> ~[na:1.8.0_92]
> at
> sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
> ~[na:1.8.0_92]
> at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
> ~[na:1.8.0_92]
> at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
> ~[na:1.8.0_92]
> at
> sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
> ~[na:1.8.0_92]
> at sun.security.validator.Validator.validate(Validator.java:260)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
> ~[na:1.8.0_92]
> at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
> ~[na:1.8.0_92]
> at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
> ~[na:1.8.0_92]
> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
> ~[na:1.8.0_92]
> at
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
> ~[na:1.8.0_92]
> at
> org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:573)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:557)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
> ~[httpclient-4.5.3.jar:4.5.3]
> at
> org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:301)
> ~[odata-client-core-4.4.0.jar:na]
> at
> org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetIteratorRequestImpl.execute(ODataEntitySetIteratorRequestImpl.java:59)
> ~[odata-client-core-4.4.0.jar:na]
> at
> org.apache.olingo.client.core.communication.request.retrieve.ODataEntitySetIteratorRequestImpl.execute(ODataEntitySetIteratorRequestImpl.java:36)
> ~[odata-client-core-4.4.0.jar:na]
> Kindly help me to resolve the issue.
> Please find below the links which I referred.
> [https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/][1]
> [1]:
> https://templth.wordpress.com/2015/04/27/implementing-an-odata-service-with-olingo/
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)