Я пытаюсь выполнить Http-вызовы из службы Soap, развернутой как военный файл на Glassfish 5.1.0 на удаленном сервере Windows. В момент выполнения Http-вызовов к другим микросервисам из службы мыла я получаю ошибку NullPointerException. В настоящее время я обновил клиент (Okhttp) до версии 3.12.13 и обновил код для использования некоторых TrustCertificates, но проблемы по-прежнему возникают. Это трассировка стека возвращаемой ошибки:
at okhttp3.ConnectionSpec.isCompatible(ConnectionSpec.java:207)
at
okhttp3.internal.connection.ConnectionSpecSelector.configureSecureSocket(ConnectionSpecSelector.java:60) a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . R e a l C o n n e c t i o n . c o n n e c t T l s ( R e a l C o n n e c t i o n . j a v a : 3 1 3 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . R e a l C o n n e c t i o n . e s t a b l i s h P r o t o c o l ( R e a l C o n n e c t i o n . j a v a : 2 8 4 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . R e a l C o n n e c t i o n . c o n n e c t ( R e a l C o n n e c t i o n . j a v a : 1 6 9 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . S t r e a m A l l o c a t i o n . f i n d C o n n e c t i o n ( S t r e a m A l l o c a t i o n . j a v a : 2 5 8 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . S t r e a m A l l o c a t i o n . f i n d H e a l t h y C o n n e c t i o n ( S t r e a m A l l o c a t i o n . j a v a : 1 3 5 ) a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . S t r e a m A l l o c a t i o n . n e w S t r e a m ( S t r e a m A l l o c a t i o n . j a v a : 1 1 4 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . C o n n e c t I n t e r c e p t o r . i n t e r c e p t ( C o n n e c t I n t e r c e p t o r . j a v a : 4 2 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 2 1 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c a c h e . C a c h e I n t e r c e p t o r . i n t e r c e p t ( C a c h e I n t e r c e p t o r . j a v a : 9 3 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 2 1 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . B r i d g e I n t e r c e p t o r . i n t e r c e p t ( B r i d g e I n t e r c e p t o r . j a v a : 9 3 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e t r y A n d F o l l o w U p I n t e r c e p t o r . i n t e r c e p t ( R e t r y A n d F o l l o w U p I n t e r c e p t o r . j a v a : 1 2 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 2 1 ) < b r / > a t o k h t t p 3 . R e a l C a l l . g e t R e s p o n s e W i t h I n t e r c e p t o r C h a i n ( R e a l C a l l . j a v a : 2 5 7 ) < b r / > a t o k h t t p 3 . R e a l C a l l . e x e c u t e ( R e a l C a l l . j a v a : 9 3 ) < b r / > a t c o m . t o o l s . C a l l A p i . b a n k l y G e t A u t h T o k e n ( C a l l A p i . j a v a : 1 7 2 ) < b r / > a t c o m . t o o l s . C a l l A p i . c a l l B a n k l y R e s t A p i ( C a l l A p i . j a v a : 2 7 8 ) < b r / > a t c o m . n i b s s . O b j N a m e E n q u i r y . p r o c e s s ( O b j N a m e E n q u i r y . j a v a : 6 8 ) < b r / > a t c o m . b a n k l y . n i b s s . N I PService.NameEnquiry(NIPService.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.xml.ws.util.Trampoline.invoke(MethodUtil.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.xml.ws.util.MethodUtil.invoke(MethodUtil.java:77)
at com.sun.xml.ws.api.server.MethodUtil.invoke(MethodUtil.java:34)
at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:220)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:119)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:58)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.run(Fiber.java:783)
at com.sun.xml.ws.api.pipe.Fiber.start(Fiber.java:390)
at com.sun.xml.ws.server.WSEndpointImpl.processAsync(WSEndpointImpl.java:338)
at com.sun.xml.ws.server.WSEndpointImpl.process(WSEndpointImpl.java:368)
atcom.sun.xml.ws.metro.api.config.management.ManagedEndpoint.process(ManagedEndpoint.java:204)at com.sun.xml.ws.transport.http.HttpAdapter.invokeAsync(HttpAdapter.java:704)
atcom.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:182)
atcom.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:131)
atcom.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:167)at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1540)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:119)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:550)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:75)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:114)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:199)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:439)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:182)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:156)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:218)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
atorg.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
at java.lang.Thread.run(Thread.java:750)
Это мой код:
public JSONObject GetAuthToken(String endPoint) {
String rtn = "";
OkHttpClient client = null; // Could remain null if exception occurs
JSONObject res = new JSONObject(); // Move this outside try block
try {
System.out.println("Making Authentication Call to Identity Server >>>>>>>>>>>>>>>>>>>>");
// Load the truststore
KeyStore trustStore = KeyStore.getInstance("JKS");
try (FileInputStream fis = new FileInputStream(truststorePath)) { // Use try-with-resources
trustStore.load(fis, truststorePassword.toCharArray());
}
// Create TrustManagerFactory
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
X509TrustManager trustManager = (X509TrustManager) trustManagerFactory.getTrustManagers()[0];
// Add ConnectionSpec with explicit TLS version
ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.tlsVersions(TlsVersion.TLS_1_2)
.allEnabledCipherSuites()
.build();
client = new OkHttpClient.Builder()
.connectTimeout(600000, TimeUnit.MILLISECONDS)
.readTimeout(600000, TimeUnit.MILLISECONDS)
.writeTimeout(600000, TimeUnit.MILLISECONDS)
.connectionSpecs(Arrays.asList(spec)) // Use single spec instead of MODERN_TLS, COMPATIBLE_TLS
.sslSocketFactory(new CustomSSLSocketFactory(), trustManager)
.build();
System.out.println("client_secret before going out : " + client_secret);
System.out.println("client_id before going out: " + client_id);
System.out.println("grant_type before going out: " + grant_type);
// Move the request creation and execution inside this try block
String formargs = "client_secret=" + client_secret +
"&client_id=" + client_id +
"&grant_type=" + grant_type;
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, formargs);
Request request = new Request.Builder()
.url(endPoint)
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
rtn = response.body().string();
System.out.println("Raw Response Body: " + rtn);
if (response.code() != 200) {
throw new IOException("Server returned code: " + response.code() + " with body: " + rtn);
}
if (rtn == null || rtn.trim().isEmpty()) {
throw new IOException("Empty response received from server");
}
try {
res = new JSONObject(rtn);
// Verify we got the token
if (!res.has("access_token")) {
throw new IOException("Response missing access_token: " + rtn);
}
} catch (JSONException je) {
throw new IOException("Invalid JSON response: " + rtn, je);
}
} catch (Exception ex) {
ex.printStackTrace();
res = new JSONObject();
res.put("error", "Auth failed: " + ex.getMessage());
}
return res;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... th-okhttp3
NullPointerException при выполнении HTTP-вызовов с помощью okhttp3 ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1733245729
Anonymous
Я пытаюсь выполнить Http-вызовы из службы Soap, развернутой как военный файл на Glassfish 5.1.0 на удаленном сервере Windows. В момент выполнения Http-вызовов к другим микросервисам из службы мыла я получаю ошибку NullPointerException. В настоящее время я обновил клиент (Okhttp) до версии 3.12.13 и обновил код для использования некоторых TrustCertificates, но проблемы по-прежнему возникают. Это трассировка стека возвращаемой ошибки:
at okhttp3.ConnectionSpec.isCompatible(ConnectionSpec.java:207)
at
okhttp3.internal.connection.ConnectionSpecSelector.configureSecureSocket(ConnectionSpecSelector.java:60) a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . R e a l C o n n e c t i o n . c o n n e c t T l s ( R e a l C o n n e c t i o n . j a v a : 3 1 3 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . R e a l C o n n e c t i o n . e s t a b l i s h P r o t o c o l ( R e a l C o n n e c t i o n . j a v a : 2 8 4 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . R e a l C o n n e c t i o n . c o n n e c t ( R e a l C o n n e c t i o n . j a v a : 1 6 9 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . S t r e a m A l l o c a t i o n . f i n d C o n n e c t i o n ( S t r e a m A l l o c a t i o n . j a v a : 2 5 8 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . S t r e a m A l l o c a t i o n . f i n d H e a l t h y C o n n e c t i o n ( S t r e a m A l l o c a t i o n . j a v a : 1 3 5 ) a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . S t r e a m A l l o c a t i o n . n e w S t r e a m ( S t r e a m A l l o c a t i o n . j a v a : 1 1 4 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c o n n e c t i o n . C o n n e c t I n t e r c e p t o r . i n t e r c e p t ( C o n n e c t I n t e r c e p t o r . j a v a : 4 2 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 2 1 ) < b r / > a t o k h t t p 3 . i n t e r n a l . c a c h e . C a c h e I n t e r c e p t o r . i n t e r c e p t ( C a c h e I n t e r c e p t o r . j a v a : 9 3 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 2 1 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . B r i d g e I n t e r c e p t o r . i n t e r c e p t ( B r i d g e I n t e r c e p t o r . j a v a : 9 3 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e t r y A n d F o l l o w U p I n t e r c e p t o r . i n t e r c e p t ( R e t r y A n d F o l l o w U p I n t e r c e p t o r . j a v a : 1 2 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 4 7 ) < b r / > a t o k h t t p 3 . i n t e r n a l . h t t p . R e a l I n t e r c e p t o r C h a i n . p r o c e e d ( R e a l I n t e r c e p t o r C h a i n . j a v a : 1 2 1 ) < b r / > a t o k h t t p 3 . R e a l C a l l . g e t R e s p o n s e W i t h I n t e r c e p t o r C h a i n ( R e a l C a l l . j a v a : 2 5 7 ) < b r / > a t o k h t t p 3 . R e a l C a l l . e x e c u t e ( R e a l C a l l . j a v a : 9 3 ) < b r / > a t c o m . t o o l s . C a l l A p i . b a n k l y G e t A u t h T o k e n ( C a l l A p i . j a v a : 1 7 2 ) < b r / > a t c o m . t o o l s . C a l l A p i . c a l l B a n k l y R e s t A p i ( C a l l A p i . j a v a : 2 7 8 ) < b r / > a t c o m . n i b s s . O b j N a m e E n q u i r y . p r o c e s s ( O b j N a m e E n q u i r y . j a v a : 6 8 ) < b r / > a t c o m . b a n k l y . n i b s s . N I PService.NameEnquiry(NIPService.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.xml.ws.util.Trampoline.invoke(MethodUtil.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.xml.ws.util.MethodUtil.invoke(MethodUtil.java:77)
at com.sun.xml.ws.api.server.MethodUtil.invoke(MethodUtil.java:34)
at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:220)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:119)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:58)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.run(Fiber.java:783)
at com.sun.xml.ws.api.pipe.Fiber.start(Fiber.java:390)
at com.sun.xml.ws.server.WSEndpointImpl.processAsync(WSEndpointImpl.java:338)
at com.sun.xml.ws.server.WSEndpointImpl.process(WSEndpointImpl.java:368)
atcom.sun.xml.ws.metro.api.config.management.ManagedEndpoint.process(ManagedEndpoint.java:204)at com.sun.xml.ws.transport.http.HttpAdapter.invokeAsync(HttpAdapter.java:704)
atcom.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:182)
atcom.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:131)
atcom.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:167)at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1540)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:119)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:550)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:75)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:114)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:199)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:439)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:182)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:156)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:218)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:515)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
atorg.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
at java.lang.Thread.run(Thread.java:750)
Это мой код:
public JSONObject GetAuthToken(String endPoint) {
String rtn = "";
OkHttpClient client = null; // Could remain null if exception occurs
JSONObject res = new JSONObject(); // Move this outside try block
try {
System.out.println("Making Authentication Call to Identity Server >>>>>>>>>>>>>>>>>>>>");
// Load the truststore
KeyStore trustStore = KeyStore.getInstance("JKS");
try (FileInputStream fis = new FileInputStream(truststorePath)) { // Use try-with-resources
trustStore.load(fis, truststorePassword.toCharArray());
}
// Create TrustManagerFactory
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
X509TrustManager trustManager = (X509TrustManager) trustManagerFactory.getTrustManagers()[0];
// Add ConnectionSpec with explicit TLS version
ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.tlsVersions(TlsVersion.TLS_1_2)
.allEnabledCipherSuites()
.build();
client = new OkHttpClient.Builder()
.connectTimeout(600000, TimeUnit.MILLISECONDS)
.readTimeout(600000, TimeUnit.MILLISECONDS)
.writeTimeout(600000, TimeUnit.MILLISECONDS)
.connectionSpecs(Arrays.asList(spec)) // Use single spec instead of MODERN_TLS, COMPATIBLE_TLS
.sslSocketFactory(new CustomSSLSocketFactory(), trustManager)
.build();
System.out.println("client_secret before going out : " + client_secret);
System.out.println("client_id before going out: " + client_id);
System.out.println("grant_type before going out: " + grant_type);
// Move the request creation and execution inside this try block
String formargs = "client_secret=" + client_secret +
"&client_id=" + client_id +
"&grant_type=" + grant_type;
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, formargs);
Request request = new Request.Builder()
.url(endPoint)
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
rtn = response.body().string();
System.out.println("Raw Response Body: " + rtn);
if (response.code() != 200) {
throw new IOException("Server returned code: " + response.code() + " with body: " + rtn);
}
if (rtn == null || rtn.trim().isEmpty()) {
throw new IOException("Empty response received from server");
}
try {
res = new JSONObject(rtn);
// Verify we got the token
if (!res.has("access_token")) {
throw new IOException("Response missing access_token: " + rtn);
}
} catch (JSONException je) {
throw new IOException("Invalid JSON response: " + rtn, je);
}
} catch (Exception ex) {
ex.printStackTrace();
res = new JSONObject();
res.put("error", "Auth failed: " + ex.getMessage());
}
return res;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79248462/nullpointerexception-when-making-http-calls-with-okhttp3[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия