2016-12-31 70 views
0

我試圖在開放班的端口上聽,但我得到了權限被拒絕。我現在用的是8.2.1 Wildfly墨盒的叉:Openshift V2 - 自定義彈夾權限被拒絕開放端口

2016-12-31 13:24:06,016 INFO [com.hazelcast.instance.DefaultAddressPicker] (MSC service thread 1-8) [LOCAL] [name] [3.5.4] Interfaces is disabled, trying to pick one address from TCP-IP config addresses: [127.0.0.1] 
2016-12-31 13:24:06,074 SEVERE [com.hazelcast.instance.DefaultAddressPicker] (MSC service thread 1-8) [LOCAL] [name] [3.5.4] ServerSocket bind has failed. Hazelcast cannot start! config-port: 5701, latest-port: 5801: com.hazelcast.core.HazelcastException: ServerSocket bind has failed. Hazelcast cannot start! config-port: 5701, latest-port: 5801 
     at com.hazelcast.instance.DefaultAddressPicker.pickAddress(DefaultAddressPicker.java:117) [hazelcast-3.5.4.jar:3.5.4] 
     at com.hazelcast.instance.Node.<init>(Node.java:143) [hazelcast-3.5.4.jar:3.5.4] 
     at com.hazelcast.instance.HazelcastInstanceImpl.<init>(HazelcastInstanceImpl.java:120) [hazelcast-3.5.4.jar:3.5.4] 
     at com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:152) [hazelcast-3.5.4.jar:3.5.4] 
     at com.hazelcast.instance.HazelcastInstanceFactory.getOrCreateHazelcastInstance(HazelcastInstanceFactory.java:98) [hazelcast-3.5.4.jar:3.5.4] 
     at com.hazelcast.core.Hazelcast.getOrCreateHazelcastInstance(Hazelcast.java:116) [hazelcast-3.5.4.jar:3.5.4] 
     at org.springframework.boot.autoconfigure.hazelcast.HazelcastInstanceFactory.getHazelcastInstance(HazelcastInstanceFactory.java:80) [spring-boot-autoconfigure-1.3.2.RELEASE.jar:1.3.2.RELEASE] 
. 
. 
. 
Caused by: java.net.SocketException: Permission denied 
     at sun.nio.ch.Net.bind0(Native Method) [rt.jar:1.8.0_111] 
     at sun.nio.ch.Net.bind(Net.java:433) [rt.jar:1.8.0_111] 
     at sun.nio.ch.Net.bind(Net.java:425) [rt.jar:1.8.0_111] 
     at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) [rt.jar:1.8.0_111] 
     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) [rt.jar:1.8.0_111] 
     at com.hazelcast.instance.DefaultAddressPicker.pickAddress(DefaultAddressPicker.java:98) [hazelcast-3.5.4.jar:3.5.4] 
     ... 69 more 

我分叉現有Wildfly硒鼓Openshift: https://github.com/openshift-cartridges/openshift-wildfly-cartridge

並且我增加了額外的新端口的manifest.yml文件:

- Private-IP-Name: IP 
    Private-Port-Name: HAZELCAST_PORT 
    Private-Port:  5701 
    Public-Port-Name: HAZELCAST_PROXY_PORT 

完整的清單可以在這裏找到: https://github.com/mrj365/openshift-wildfly-cartridge/blob/master/metadata/manifest.yml

我不知道我錯過了什麼。我只是想在那個港口本地進行傾聽。

回答

1

我想出了這個問題。 Hazelcast綁定了錯誤的IP地址。我有以下的配置添加到hazelcast config來得到它的工作:

Config config = new Config(); 

config.setProperty("hazelcast.local.localAddress", System.getenv("OPENSHIFT_DIY_IP ")); 

我使用wildfly,所以對我來說是:

config.setProperty("hazelcast.local.localAddress", System.getenv("OPENSHIFT_WILDFLY_IP")); 

我也不得不添加這些2附加配置:

config.setProperty("hazelcast.socket.client.bind.any", "false"); 
config.setProperty("hazelcast.socket.bind.any", "false");