scala - 通过 SBT 运行 Scala 应用程序时拒绝绑定(bind)到端口的权限

标签 scala sbt netty

我正在尝试使用 SBT 运行我的 Scala 代码,但出现以下错误。使用命令行的 SBT 和 IntelliJ Idea 都会发生这种情况。

    [error] (run-main) org.jboss.netty.channel.ChannelException:
    Failed to bind to: /127.0.0.1:80
    org.jboss.netty.channel.ChannelException: Failed to bind to: /127.0.0.1:80
    ....
    ....
    Caused by: java.net.SocketException: Permission denied

我应该配置什么来允许端口访问。当我尝试在本地 Mac 和远程 Ubuntu 服务器上运行时,都会发生这种情况。

使用“sudo sbt”运行 sbt 可以解决问题,但这不是解决方案。我在哪里可以设置允许我的 Scala 应用程序访问端口 80 的权限。

最佳答案

这个问题的解决方案将取决于操作系统,而不是 SBT、Scala 或 Java 可能做的任何事情。

例如,Debian 建议 three different solutions ,所有这些都可以在其他 Linux 发行版上使用——其中两个是作为 root 运行的变体,第三个使用 iptables 来伪造端口 80 上的监听。

在 FreeBSD 上,可以完全禁用低端口限制,而 Solaris 可以按端口和用户这样做,如所述(两者都适用)here .

关于scala - 通过 SBT 运行 Scala 应用程序时拒绝绑定(bind)到端口的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157001/

相关文章:

java - 如何在主体中添加一个简单的属性作为响应后netty 4中的Name=Value

java - 类型参数 T 扩展类不允许类在方法中用作 T 参数

scala - 需要将 Seq[Option[A]] 转换为 Option[Seq[A]]

grails - 使用ServerInitializerFactory Netty 4时邮件未到达目标队列

scala - 在 akka 2.x 中,root actor 是否由其他人监督?

Apache Commons 的 sbt 配置

scala - 玩! 2.0框架多Module项目

scala - 在现有项目中创建新的 lagom 微服务的 sbt 命令是什么?

java - 针对不可序列化对象和函数的 Spark Scala 编程

scala - 案例类中的静态函数(Scala)