2016-05-17 20 views
0

ドッキング・コンテナ内で実行されるJavaプログラムがあります。 このプログラムはIpv4ソケットに接続しようとします。 は、私は、次の無効な引数の例外java.net.SocketExceptionの取得:無効な引数:ドッキング・コンテナ内

Caused by: java.net.SocketException: Invalid argument: /135.250.15.104:6524 
    at sun.nio.ch.Net.connect0(Native Method) 
    at sun.nio.ch.Net.connect(Net.java:454) 
    at sun.nio.ch.Net.connect(Net.java:446) 
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648) 
    at io.netty.channel.socket.nio.NioSocketChannel.doConnect(NioSocketChannel.java:209) 
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.connect(AbstractNioChannel.java:199) 
    at io.netty.channel.DefaultChannelPipeline$HeadContext.connect(DefaultChannelPipeline.java:1089) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:543) 
    at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:528) 
    at io.netty.handler.ssl.SslHandler.connect(SslHandler.java:415) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:543) 
    at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:528) 
    at io.netty.channel.ChannelOutboundHandlerAdapter.connect(ChannelOutboundHandlerAdapter.java:47) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:543) 
    at io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:528) 
    at io.netty.channel.DefaultChannelPipeline.connect(DefaultChannelPipeline.java:914) 
    at io.netty.channel.AbstractChannel.connect(AbstractChannel.java:208) 
    at io.netty.bootstrap.Bootstrap$2.run(Bootstrap.java:167) 
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357) 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) 
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) 
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) 

は、今私は-Djava.net.preferIPv4Stack=true JVMオプションが、運を設定しようとしています。

私はopen-jdk 8を使用しており、from java:openjdk-8u72-jreは私のDockerFileのエントリです。 同じIPアドレスがドッカーコンテナからpingできることに注意してください。私はcompose referenceを参照してください--net=hostは私のドッキングウィンドウ・コンファイルで私のドッキングウィンドウrunコマンドでdocker referencenetwork_mode : "host"を参照してください使用する場合

答えて

0

問題が解決されました。

関連項目stackoverflow postも参照してください。 問題は、NIOに空きローカルアドレスを選択させる代わりに、ソケット接続が定義済みのローカルソケットアドレスを使用する場合にのみ表示されるようです。

しかし、例外スタックトレースには、種類が奇妙なリモートアドレスの「無効な引数」と表​​示されているため、問題を把握するのに時間がかかりました。