2

Scala SOAP クライアント コードを最新のscalaxb (1.2.1) に更新し、(Eithers ではなく) Features に切り替えた後ConnectException: Worker has already been shutdown、単純な SOAP リクエストを作成すると、次のようになります。

val service = (new aw.ServicesSOAPBindings with Soap11ClientsAsync with scalaxb.DispatchHttpClientsAsync {}).service

// list providers
service.listProviders(4) onComplete { 
  case Success(respond) => 
    println(s"Respond: code ${respond.ErrorCode}, messsage: ${respond.ErrorMessage}, Providers: ${respond.Providers.size}")
    if (!respond.Providers.isEmpty)
      listKnownProviders(respond.Providers)

  case Failure(failure) => println("Failure I : " + failure.printStackTrace())
}

Netty/Dispatch の構成手順が抜けていませんか?

スタックトレースは次のとおりです。

java.util.concurrent.ExecutionException: java.net.ConnectException: Worker has already been shut down to https://service.xxxxxxx.com/wsdl/v4/
    com.ning.http.client.providers.netty.NettyResponseFuture.abort (NettyResponseFuture.java:342) で
    com.ning.http.client.providers.netty.NettyConnectListener.operationComplete (NettyConnectListener.java:107) で
    org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427) で
    org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:145) で
    com.ning.http.client.providers.netty.NettyAsyncHttpProvider.doConnect (NettyAsyncHttpProvider.java:1136) で
    com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute (NettyAsyncHttpProvider.java:937) で
    com.ning.http.client.providers.netty.NettyAsyncHttpProvider.nextRequest(NettyAsyncHttpProvider.java:1397) で
    com.ning.http.client.providers.netty.NettyAsyncHttpProvider.nextRequest(NettyAsyncHttpProvider.java:1393) で
    com.ning.http.client.providers.netty.NettyAsyncHttpProvider.remotelyClosed (NettyAsyncHttpProvider.java:1514) で
    com.ning.http.client.providers.netty.NettyConnectListener.operationComplete (NettyConnectListener.java:95) で
    org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427) で
    org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:418) で
    org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:380) で
    org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$1.operationComplete(NioClientSocketPipelineSink.java:115) で
    org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427) で
    org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:413) で
    org.jboss.netty.channel.DefaultChannelFuture.setSuccess(DefaultChannelFuture.java:362) で
    org.jboss.netty.channel.AbstractChannel$ChannelCloseFuture.setClosed(AbstractChannel.java:355) で
    org.jboss.netty.channel.AbstractChannel.setClosed(AbstractChannel.java:185) で
    org.jboss.netty.channel.socket.nio.AbstractNioChannel.setClosed(AbstractNioChannel.java:197) で
    org.jboss.netty.channel.socket.nio.NioSocketChannel.setClosed(NioSocketChannel.java:84) で
    org.jboss.netty.channel.socket.nio.AbstractNioWorker.close(AbstractNioWorker.java:356) で
    org.jboss.netty.channel.socket.nio.NioClientBoss.close(NioClientBoss.java:167) で
    org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:306) で
    org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) で
    org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) で
    org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) で
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) で
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) で
    java.lang.Thread.run(Thread.java:695) で

ヒントをお寄せいただきありがとうございます。

4

1 に答える 1