如何将DatagramSocket绑定到Openshift中的特定端口

时间:2016-09-04 08:17:16

标签: java networking tcp openshift datagram

我正在openshift上运行siple java jar服务,它尝试连接DatagramSocket并获取此异常:

java.net.BindException: Permission denied
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:96)
at java.net.DatagramSocket.bind(DatagramSocket.java:397)
at java.net.DatagramSocket.<init>(DatagramSocket.java:251)
at java.net.DatagramSocket.<init>(DatagramSocket.java:304)
at java.net.DatagramSocket.<init>(DatagramSocket.java:276)
at com.gasmps.service.TerminationListener.run(EmailService.java:542)
at java.lang.Thread.run(Thread.java:745)

我知道这是端口权限问题,但我尝试使用像8000,8443,15005,16005这样的端口但是得到相同我怎么能解决这个问题?我如何知道我可以在我的应用程序中使用的所有开放端口。

编辑:我的jboss服务器已在同一个应用程序中运行,我不想为这些jar服务bcos创建单独的应用程序我必须从我的应用程序从远程位置运行此jar。

1 个答案:

答案 0 :(得分:0)

在遇到相同的问题之后,Iv对此进行了调查,并在之前发现了堆栈溢出的答案:

  

在Openshift中,您只能绑定到服务器分配的端口   为了你。通常,这是环境变量的值   $ OPENSHIFT_JBOSS_PORT(它在墨盒之间变化)和值   齿轮之间的差异。绑定到任何其他端口将报告为   SELinux策略违规并被拒绝。   link   端口通常为8080

     

您可以将您的应用绑定到8080(不是8000或8443),8000和8443上收到的所有流量&gt;都会被代理路由到您的应用&gt;收听8080.

这对我有用,但让我知道它是怎么回事,如果它仍然不起作用我会尽力帮助。