问题描述
代码在一个系统上工作,但在另一个系统上不起作用。
@FeignClient(name="TodoApi",url = "https://jsonplaceholder.typicode.com")
public interface TodoApi {
@GetMapping("/todos/{id}")
ToDo findById(@PathVariable("id") Integer id);
}
工作系统 1
java version "14.0.2" 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46,mixed mode,sharing)
工作系统 2
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09,mixed mode)
它不起作用的地方
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09,mixed mode)
pom 配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
</properties>
...
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
抛出以下异常
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210) ~[na:1.8.0_271]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_271]
at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:475) ~[na:1.8.0_271]
at sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:469) ~[na:1.8.0_271]
我有以下问题
- 为什么会这样?是因为java版本吗?或者它可能是一些防火墙?
- 有些人建议我应该使用 SSL 证书,我不想管理它,因为 URL 或域会不断变化(动态),是否有自动方法?如果必须使用 SSL 证书,我们能否以编程方式下载并从 URL 使用它?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)