【发布时间】: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