My API
is returning below response
when I am calling from postman
. I am not getting proper response from webclient. I am doing something wrong. I am quite new.
{
"loginAccounts": [
{
"name": "Oracle",
"accountId": "16485679",
"baseUrl": "https://demo.docusign.net/restapi/v2.1/accounts/16485679",
"isDefault": "true",
"userName": "Mahima Pandey",
"userId": "e48dbc73-97df-42de-be9f-ea49c8b24712",
"email": "mahima.pandey@oracle.com",
"siteDescription": ""
}
]
}
when I am consuming using webclient.
public static Flux<LoginAccounts> retrieveDetails(){
Flux<LoginAccounts> loginAccounts=null;
WebClient webclient = WebClient.create();
try {
loginAccounts = webclient.get().uri(DocusignConstants.LOGIN_INFO_URL)
.header("Accept", "application/json")
.header("Authorization", "Bearer eyJ0eX...........")
.retrieve()
.bodyToFlux(LoginAccounts.class);
System.out.println(loginAccounts);
}
catch(WebClientResponseException ex) {
System.out.println(ex);
}
return loginAccounts;
}
it is simple returing MonoFlatMapMany
.how can I get proper response?
my POJO is below.
@data
@Noargsconstructor
@Allargsconstructor
public class LoginAccounts {
private String name;
private String accountId;
private String baseUrl;
private Boolean isDefault;
private String userName;
private String userId;
private String email;
private String siteDescription;
}
if I write this line System.out.println(loginAccounts);
it prints
MonoFlatMapMany
but if i use stram it starts giving exception
loginAccounts.toStream().forEach(data -> System.out.println(data));
Below is the exception.
org.springframework.web.reactive.function.client.WebClientRequestException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2022-06-21 11:09:50.494 WARN 20024 --- [ctor-http-nio-2] r.netty.http.client.HttpClientConnect : [099818dc, L:/172.20.10.3:58444 - R:demo.docusign.net/162.248.186.25:443] The connection observed an error
javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[na:na]
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:371) ~[na:na]
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314) ~[na:na]
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:309) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175) ~[na:na]
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) ~[na:na]
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480) ~[na:na]
at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1277) ~[na:na]
at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1264) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) ~[na:na]
at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1209) ~[na:na]
from postman I am getting proper response.