Spark无法绑定http端口

时间:2018-01-05 20:57:01

标签: java spark-java

我正在尝试将端口80绑定到我的import static spark.Spark.get; import static spark.Spark.port; public class Main { public static void main(String[] args) { port(80); get("/hello", (request, response) -> "hello world"); } } 服务器:

22:51:56.067 [Thread-0] ERROR spark.Spark - ignite failed
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 org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:298)
    at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
    at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.server.Server.doStart(Server.java:431)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at spark.embeddedserver.jetty.EmbeddedJettyServer.ignite(EmbeddedJettyServer.java:149)
    at spark.Service.lambda$init$2(Service.java:496)
    at java.lang.Thread.run(Thread.java:748)

但由于某种原因,我收到以下错误:

OS

我在'a的任何地方都搜索过,如果有任何连接绑定到端口80,但我没找到。
有什么解决方案吗?

1 个答案:

答案 0 :(得分:6)

直接绑定到端口80可能是一个坏主意。

此端口(如任何端口< 1024)需要root权限(但以root身份运行非常不鼓励)或某些capabilities setting

通常,您在非特权端口上运行Spark。如果您确实希望将其公开为Web连接的默认设置,请考虑通过Web服务器(例如nginx或apache)进行代理。无论如何,你可能想要在附近举办其他活动。