2016-09-04 92 views
0

我正在上openshift賽普爾Java的罐子服務,試圖與DatagramSocket的連接,並獲取此異常:如何綁定DatagramSocket的特定端口Openshift

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。

回答

0

㈣看着這個有同樣的問題之前和之後發現之前的堆棧溢出的答案:

在Openshift,您只能綁定到服務器爲您分配 的端口。通常這是環境變量 $ OPENSHIFT_JBOSS_PORT的值(它在不同的盒式磁帶之間有所不同),並且值 在齒輪之間有所不同。綁定到任何其他端口將被報告爲 SELinux策略違規並被拒絕。 link 端口通常是8080

您可以將您的應用程序綁定到8080(而不是8000或8443),所有流量在8000和8443接收>將通過代理您的應用程序來路由>監聽8080 。

這對我有效,但讓我知道它是如何去,如果它仍然無法工作,我會盡力而且幫助。

+0

你的意思是我必須在8080上運行TCP服務,但我的jboss服務器已經在運行了,當我試着在這個端口上仍然得到相同的異常 –