Springboot -连接异常

33qvvth1  于 2023-09-29  发布在  Spring
关注(0)|答案(1)|浏览(165)

我在一个springboot应用程序中使用了以下代码:

try {
            System.out.println("StartListener.onApplicationEvent()");
            HttpRequest request = HttpRequest.newBuilder().GET()
                    .uri(URI.create(
                            "https://fr.ftp.opendatasoft.com/openscol/fr-en-calendrier-scolaire/Zone-A-B-C-Corse.ics"))
                    .build();
            HttpClient httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build();
            HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println(response.body());
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

我每次都有一个连接异常:
java. net。Java中的ConnectException。net. http/jdk。内部的net. http. HttpClientImpl. send(HttpClientImpl.java:573)at java. net. http/jdk.内部的net. http. HttpClientFacade。send(HttpClientFacade.java:123)at fr. utensilia。covoit。后退配置StartListener。onApplicationEvent(StartListener.java:42)at java. java中的base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)。base/jdk.内部的反思NativeMethodAccessorImpl.在java中调用(NativeMethodAccessorImpl.java:77)。base/jdk.内部的反思DelegatingMethodAccessorImpl.在java中调用(DelegatingMethodAccessorImpl.java:43)。base/java. lang。反思方法。在org调用(Method.java:568)。SpringFramework上下文事件。ApplicationListenerMethodAdapter。org上的doInvoke(ApplicationListenerMethodAdapter.java:344)。SpringFramework上下文事件。ApplicationListenerMethodAdapter。org上的processEvent(ApplicationListenerMethodAdapter.java:229)。SpringFramework背景。事件。ApplicationListenerMethodAdapter。onApplicationEvent(ApplicationListenerMethodAdapter.java:166)at org. SpringFramework背景。事件。SimpleApplicationEventMulticaster。org上的documentkeyboard(SimpleApplicationEventMulticaster.java:176)。SpringFramework。上下文事件。SimpleApplicationEventMulticaster。在org上的invokeLog(SimpleApplicationEventMulticaster.java:169)。SpringFramework上下文事件。SimpleApplicationEventMulticaster。multicastEvent(SimpleApplicationEventMulticaster.java:143)at org. SpringFramework上下文支持。AbstractApplicationContext。在org上的AbstractApplicationContext.java:421。SpringFramework上下文支持。AbstractApplicationContext。publishEvent(AbstractApplicationContext.java:378)at org. SpringFramework上下文支持。AbstractApplicationContext。finishRefresh(AbstractApplicationContext.java:938)at org. SpringFramework上下文支持。AbstractApplicationContext.在org上刷新(AbstractApplicationContext.java:586)。SpringFramework Boot 。web. servlet。上下文ServletWebServerApplicationContext。在org上刷新(ServletWebServerApplicationContext.java:147)。SpringFramework Boot SpringApplication.在org上刷新(SpringApplication.java:734)。SpringFramework Boot 。SpringApplication。refreshContext(SpringApplication.java:408)at www.example.com java. nio.渠道。Java中的ClosedChannelException。基地/太阳nio。ch. SocketChannelImpl. java中的ensureOpen(SocketChannelImpl.java:195)。基地/太阳nio。ch. SocketChannelImpl. beginConnect(SocketChannelImpl.java:760)at java.基地/太阳nio。ch. SocketChannelImpl. connect(SocketChannelImpl.java:848)at java. net. http/jdk.internal.net.http.PlainHttpConnection.plainHttpConnection.java:183)at java. base/java.安全访问控制器。doPrivileged(AccessController.java:569)at java. net. http/jdk.内部的net. http. PlainHttpConnection。connectAsync(PlainHttpConnection.java:185). org.springframework.boot.SpringApplication.run
如果我在一个简单的类(没有Spring)中使用相同的代码,就可以了:

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Test {

    public static void main(String[] args) {
        try {
            System.out.println("StartListener.onApplicationEvent()");
            HttpRequest request = HttpRequest.newBuilder().GET()
                    .uri(URI.create(
                            "https://fr.ftp.opendatasoft.com/openscol/fr-en-calendrier-scolaire/Zone-A-B-C-Corse.ics"))
                    .build();
            HttpClient httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build();
            HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println(response.body());
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

    }

}

我可以在浏览器中打开它,但例外情况与此不同:java.net.ConnectException while Source Validation in Java
有什么想法吗?

g9icjywg

g9icjywg1#

噗!
我在我的vm参数上有一个代理。。它的工作没有

相关问题