- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从我的 Web 应用程序向 Facebook、Google 等外部 API 发出请求。 Tomcat 使用 SSEngine 在 native APR 上工作。这是连接器配置:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxConnections="5000" maxThreads="5000" processorCache="6000"
minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="5000" debug="0"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="{....}.crt"
SSLCertificateKeyFile="{....}.key"
SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>
我自己的 rest api 工作得很好,但每次我通过 restTemplate 向外部服务发出请求时,我都会遇到这些错误。
这是堆栈跟踪:
org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://graph.facebook.com/v2.8/me": java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext); nested exception is java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:633)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:595)
at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:328)
{....}
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:280)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
{....}
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 org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:208)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
{....}
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run
如何避免?
最佳答案
默认情况下,java 8 仅支持 TLS v1.2。如果您尝试连接的站点不是您将收到此错误。
关于java.security.NoSuchAlgorithmException 在 Spring 的 RestTemplate 做请求时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297586/
我想使用 MessageDigest 获取 MD5 哈希值,但出现错误。 import java.security.MessageDigest; public class dn { public
我正在尝试使用 Jacksum API generate a Whirlpool hash ,但我收到了 NoSuchAlgorithmException: import java.security.
public static void main(String[] args) throws Exception { System.setProperty("javax.net.ssl.
我正在使用 IBM 的 Java 版本和 HttpClient,但收效甚微。每当我使用 HttpClient 对象的executeMethod() 时,我都会收到NoSuchAlgorithmExce
您好,我有以下函数可以在我的应用程序中将字符串转换为私钥: public static PrivateKey main() throws Exception { // Read in the
这是我的代码: static { Security.addProvider(new BouncyCastleProvider()); } ... final Cipher sifra = Ci
尝试编译以下代码时,我每次都会生成 NoSuchAlgorithmException,无论我将什么字符串分配给算法变量(AES、DESede 等)。错误总是在构造函数中抛出,当我第一次尝试为键赋值时,
当我将 PBKDF2WithHmacSHA1 传递给 getInstance() 时,我不断收到 NoSuchAlgorithmException。 为什么会发生这种情况。我错过了一些进口吗? imp
我正在尝试对安全网站进行 POST 调用: 步骤: 1) 转到https://www.mywebsite.com (供引用) 2) 将上述网站的 keystore 导出到C:\Program File
这是我的代码的加密部分。它编译正常但在运行时因该异常而失败: import java.util.Random; import javax.crypto.Cipher; import javax.cry
我想使用 flexiprovider library我正在尝试实例化一个简单的 de.flexiprovider.api.MessageDigest;与下一个代码 MessageDigest dige
方法SecureRandom.getInstanceStrong()声明它可以抛出 NoSuchAlgorithmException,但是文档说: Every implementation of th
我在使用 BouncyCaSTLe 检查 XMLSignature 以验证使用 ECDSA 的签名时遇到问题。 以下是相关的代码行: BouncyCastleProvider provider = n
Java 表示在这一行中,找不到文件 ssc.store: server = ((SSLServerSocketFactory) SSLServerSocketFactory.getDefault()
这是在将现有代码库克隆到 OSX 机器上之后第一次运行 ./gradlew 的错误。 有问题的包装器给出了以下输出(在另一个系统上) ./gradlew -v -------------------
查看下面的 java 行: Mac.getInstance("HmacSHA1"); 如果我把它放在一个简单的测试程序中,它在我的服务器上运行没有问题。但是,如果我在容器中使用这一行,我会得到 jav
我在以下代码中得到 NoSuchAlgorithmException: @RunWith(PowerMockRunner.class) @PrepareForTest({CloudWatchHel
在 JRE 1.8 (jdk1.8.0_101) 上使用 SSL 从 JBoss 连接 IBM MQ 时遇到问题 我在下面的 java.security 上发表评论,但没有任何变化: jdk.cert
我正在开发一个独立的java应用程序,它将打包为jar文件(OSGi插件),并在部署在Jboss AS 7.1上的EAR中运行当我尝试连接到Microsoft SQLServer 10 使用 JDBC
这段代码出现“javax.net.ssl.SSLException:连接重置” ReadableByteChannel rbc = Channels.newChannel(url.getInputSt
我是一名优秀的程序员,十分优秀!