我正在尝试将端口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,但我没找到。
有什么解决方案吗?
答案 0 :(得分:6)
直接绑定到端口80可能是一个坏主意。
此端口(如任何端口< 1024)需要root权限(但以root身份运行非常不鼓励)或某些capabilities setting。
通常,您在非特权端口上运行Spark。如果您确实希望将其公开为Web连接的默认设置,请考虑通过Web服务器(例如nginx或apache)进行代理。无论如何,你可能想要在附近举办其他活动。