2017-06-03 4 views
0

Wenn ich versuche, meine (lokal) zu laufen spielen Anwendung über das play2 Plugin von intellij ich:

[ERROR] [06/03/2017 23:21:10.985] [play-dev-mode-akka.actor.default-dispatcher-2] [akka://play-dev-mode/system/IO-TCP/selectors/$a/0] Bind failed for TCP channel on endpoint [/0.0.0.0:80] 
java.net.SocketException: Permission denied 
    at sun.nio.ch.Net.bind0(Native Method) 
    at sun.nio.ch.Net.bind(Net.java:433) 
    at sun.nio.ch.Net.bind(Net.java:425) 
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) 
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) 
    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:555) 
    at akka.actor.ActorCell.create(ActorCell.scala:581) 
    at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:454) 
    at akka.actor.ActorCell.systemInvoke(ActorCell.scala:476) 
    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 akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
    at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
    at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
    at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 

akka.stream.BindFailedException$: bind failed 

Wenn ich aber laufen es über sbt run funktioniert alles wie ein Charme.

1) Warum ist das? 2) Wie kann ich das beheben? (Unter Linux 4.11 hier ausgeführt - ich verstehe, dass der Port nur "sudoers" erlaubt ist, aber dann frage ich mich, warum die funktioniert) 3) Jede andere Möglichkeit, im "Debug-Modus" zu spielen? Ich möchte einige Breakpoints setzen und den Flow analysieren.

Antwort

1

Ich stieß auf ähnliche Probleme zuvor. Die Bereitstellung für den Port erfordert Berechtigungen. Wenn Sie den Dienst lokal aktivieren möchten, können Sie den Port in 9000 ändern, wenn dieses Problem nicht auftreten soll. Wenn Sie dann auf die Produktion bereitstellen, können Sie es auf 80 ändern und folgen Sie dieser Anleitung:

https://www.playframework.com/documentation/2.5.x/Deploying

+0

Aber ich will nicht zu „implementieren“ in dem Sinne, dass sie die Produktion bereit ist. Ich möchte das gleiche wie 'sbt run' tut – Sorona

+0

Ja, ich weiß, ich biete Ihnen nur eine Alternative. Sie können zwei verschiedene Konfigurationen haben, eine für local mit Port 9000 und eine für die Produktion mit Port 80, was ich meinte. Übrigens, hier ist ein roter Faden. Sie können Port 8080 auch für lokale verwenden: https://stackoverflow.com/questions/8205067/how-do-i-change-the-default-port-9000-that-play-uses-when-i-execute- the-run –

+0

Mein 'sbt run' wird bereits auf Port 9000 deployt. Nur das play2-Plugin versucht Port 80 aus unbekannten Gründen nicht. Es tut mir leid, ich kann dir nicht folgen. – Sorona

Verwandte Themen