2017-05-17 4 views
1

ich `Netty4ClientHttpRequestFactory mit asyncresttemplate zu konfigurieren,Netty AsyncRestTemplate Https URL - Verbindung von Peer zurückgesetzt

public AsyncRestTemplate asyncRestTemplate(Netty4ClientHttpRequestFactory netty4ClientHttpRequestFactory, 
               @Qualifier("AsyncClientLoggingInterceptor") AsyncClientHttpRequestInterceptor clientHttpRequestInterceptor) { 
     AsyncRestTemplate restTemplate = new AsyncRestTemplate(netty4ClientHttpRequestFactory); 
     List<AsyncClientHttpRequestInterceptor> interceptors = new ArrayList<>(); 
     interceptors.add(clientHttpRequestInterceptor); 
     restTemplate.setInterceptors(Collections.unmodifiableList(interceptors)); 
     return restTemplate; 
    } 

    @Bean(name = "netty4ClientHttpRequestFactory") 
    public Netty4ClientHttpRequestFactory netty4ClientHttpRequestFactory() { 
     Netty4ClientHttpRequestFactory netty4ClientHttpRequestFactory = new Netty4ClientHttpRequestFactory(); 
     netty4ClientHttpRequestFactory.setConnectTimeout(CONNECT_TIMEOUT); 
     netty4ClientHttpRequestFactory.setReadTimeout(CONNECT_TIMEOUT); 
     return netty4ClientHttpRequestFactory; 
    } 


ListenableFuture<ResponseEntity<Void>> future = 
       asyncRestTemplate.exchange(message.getToUrl(), HttpMethod.POST, httpEntity, Void.class); 

Alles mit HTTP POST funktioniert gut, aber mit Https es wirft die folgende Ausnahme,

java.io.IOException: Connection reset by peer 
    at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:1.8.0_74] 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[?:1.8.0_74] 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[?:1.8.0_74] 
    at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[?:1.8.0_74] 
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[?:1.8.0_74] 
    at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288) ~[netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1100) ~[netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:372) ~[netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:624) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:559) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:476) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) [netty-all-4.1.9.Final.jar:4.1.9.Final] 
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74] 

Antwort

1

Einer der Gründe für die Fehlermeldung "Verbindung durch Peer zurückgesetzt" ist, da der Client auf eine Antwort vom Remote-Dienst wartet und die Verbindung vorzeitig geschlossen wurde.

konfiguriert die I Netty4ClientHttpRequestFactory mit,

netty4ClientHttpRequestFactory.setSslContext(SslContextBuilder.forClient().build()); 
Verwandte Themen