【问题标题】:java.net.BindException When Creating ServerSocket on Tomcat 7 on OpenShift在 OpenShift 上的 Tomcat 7 上创建 ServerSocket 时出现 java.net.BindException
【发布时间】:2015-12-26 13:20:59
【问题描述】:

我试图在 Openshift 上启动一个通过 ServerSocket 侦听端口的应用程序。

ServerSocket  = new ServerSocket(8080); 

但它失败并显示以下错误消息:

java.net.BindException: Permission denied
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)...

我尝试将端口从 8080 更改为 8000,然后更改为 15000。但它们都不起作用。

我确实在 Internet 上进行了深入搜索。但是,我仍然找不到解决方案。有人知道吗?


2015-12-29 编辑

建议理由:

Openshift 允许 gear 绑定到 8080 端口。但是 Tomcat 已经 绑定 8080。因此,我的应用程序不允许绑定到同一个端口。

建议的解决方案:

改用 DIY 购物车。但似乎 Openshift 只允许 外部客户端连接 http://、https://、ws:// 和 wss:// 协议(OpenShift Developer Guide)。应修改应用程序 处理这些协议。

Ungarida确认解决方案并提供documentation

【问题讨论】:

  • 从错误消息中您没有绑定套接字的权限。尝试使用 root 用户同时检查防火墙。
  • 我认为我无法在 OpenShift 上获得 root 访问权限,正如来自 this post 的 SFERICH 所建议的那样。

标签: java openshift serversocket


【解决方案1】:

我认为是唯一的解决方案,看看这个documentation

【讨论】:

    【解决方案2】:

    我认为使用 DIY 购物车可能是一个解决方案。

    Openshift 允许 gears 绑定到 8080 端口。我怀疑 Tomcat 已经绑定了 8080。所以,我的应用程序不允许绑定到同一个端口。

    我试过 DIY 购物车,我也没有例外。但似乎Openshift只允许外部客户端连接http://、https://、ws://和wss://协议(OpenShift Developer Guide)。我必须修改我的应用程序来处理这些协议。

    有人知道其他解决方案吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2017-02-13
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      相关资源
      最近更新 更多