Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在akka http中绑定到远程服务器时未解决的连接问题_Java_Akka Http - Fatal编程技术网

Java 在akka http中绑定到远程服务器时未解决的连接问题

Java 在akka http中绑定到远程服务器时未解决的连接问题,java,akka-http,Java,Akka Http,我正在尝试将akka http服务绑定到具有https配置的服务器。但我得到的是尚未解决的地址问题 [ERROR] [03/01/2017 13:43:28.983] [readings-data-receiver-akka.actor.default-dispatcher-3] [akka://readings-data-receiver/system/IO-TCP/selectors/$a/0] Bind failed for TCP channel on endpoint [https:/

我正在尝试将akka http服务绑定到具有https配置的服务器。但我得到的是尚未解决的地址问题

[ERROR] [03/01/2017 13:43:28.983] [readings-data-receiver-akka.actor.default-dispatcher-3] [akka://readings-data-receiver/system/IO-TCP/selectors/$a/0] Bind failed for TCP channel on endpoint [https://enetdefender.com/graphql:443]
java.net.SocketException: Unresolved address
        at sun.nio.ch.Net.translateToSocketException(Net.java:131)
        at sun.nio.ch.Net.translateException(Net.java:157)
        at sun.nio.ch.Net.translateException(Net.java:163)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:76)
        at akka.io.TcpListener.liftedTree1$1(TcpListener.scala:56)
        at akka.io.TcpListener.<init>(TcpListener.scala:53)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at akka.util.Reflect$.instantiate(Reflect.scala:65)
        at akka.actor.ArgsReflectConstructor.produce(IndirectActorProducer.scala:96)
        at akka.actor.Props.newActor(Props.scala:213)
        at akka.actor.ActorCell.newActor(ActorCell.scala:562)
        at akka.actor.ActorCell.create(ActorCell.scala:588)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:461)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:483)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:282)
        at akka.dispatch.Mailbox.run(Mailbox.scala:223)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.nio.channels.UnresolvedAddressException
        at sun.nio.ch.Net.checkAddress(Net.java:101)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:218)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        ... 20 more

服务器绑定的地址错误。graphql安装在阻止akka http服务的客户上。通过更改服务器,它工作正常。

FWIW执行请求的机器似乎存在DNS问题。注意
https://enetdefender.com/graphql:443
url它似乎是错的。如果你真的想指定https端口,你应该在域
https://enetdefender.com:443/graphql
端口将自动附加到地址。我没有指定端口。如何将其添加到域后@abhi共享您的http客户端代码可能会有所帮助我在上面的帖子中添加了这些代码
  type PR = ProducerRecord[String, String]

  val props = new Properties();
  props.put("bootstrap.servers", "localhost:9092");
  props.put("key.serializer", classOf[StringSerializer].getCanonicalName);
  props.put("value.serializer", classOf[StringSerializer].getCanonicalName);

  implicit val system = ActorSystem("readings-data-receiver")
  implicit val materializer = ActorMaterializer()
  implicit val executionContext = system.dispatcher

  val producer = new KafkaProducer[String, String](props);
  val settings = CorsSettings.defaultSettings

  val password: Array[Char] = new Array[Char]('a');// do not store passwords in code, read them from somewhere safe!


  val ks: KeyStore = KeyStore.getInstance("PKCS12")
  val keystore: InputStream = getClass.getClassLoader.getResourceAsStream("server.p12")

  //require(keystore != null, "Keystore required!")
  ks.load(keystore, password)

  val keyManagerFactory: KeyManagerFactory = KeyManagerFactory.getInstance("SunX509")
  keyManagerFactory.init(ks, password)

  val tmf: TrustManagerFactory = TrustManagerFactory.getInstance("SunX509")
  tmf.init(ks)
  val sslContext: SSLContext = SSLContext.getInstance("TLS")
  sslContext.init(keyManagerFactory.getKeyManagers, tmf.getTrustManagers, SecureRandom.getInstanceStrong)
  val https: HttpsConnectionContext = ConnectionContext.https(sslContext)

  // sets default context to HTTPS – all Http() bound servers for this ActorSystem will use HTTPS from now on
  Http().setDefaultServerHttpContext(https)

  val route: Route= cors(settings) {
    post {
      path("") {
        entity(as[String]) {payload=>
            val rec = new PR("Events", 0, UUID.randomUUID().toString, payload)
            producer.send(rec)
            println(rec)
            complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, ""))

        }
      }
    }
  }

  //val bindingFuture = Http().bindAndHandle(route, "54.85.112.231",9000,connectionContext = https)
  val bindingFuture = Http().bindAndHandle(route, "54.85.112.231:9000",connectionContext = https)