문제

WebSockets를 구현하는 OpenShift에서 DIY 응용 프로그램을 구축하려고합니다.이 예제에서 시작했습니다.

https ://www.openshift.com/blogs/how-to-build-java-websocket-applications-using-the-jsr-356-api

로컬로 실행하면 완벽하게 작동합니다.코드를 DIY OpenShift 카트리지에 업로드하고 컴파일하면 오류가 발생합니다.서버가 PORT 8000에서 $ OPENSHIFT_DIY_IP에 연결되도록 코드를 수정했지만 코드가 LINE Server.start ()에 도달하면 코드가 연결됩니다.다음 오류로 충돌합니다.

나는 무엇을 잘못하고 있습니까?나는 행운없이 다른 포트 (17500 년 및 on)를 시도했다.

오류 :

Binding server to 127.7.177.1:8000
Jun 04, 2014 10:28:02 AM org.glassfish.tyrus.server.ServerContainerFactory create
INFO: Provider class loaded: org.glassfish.tyrus.container.grizzly.GrizzlyEngine
java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:444)
at sun.nio.ch.Net.bind(Net.java:436)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bindToChannelAndAddress(TCPNIOBindingHandler.java:131)
at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bind(TCPNIOBindingHandler.java:87)
at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bind(TCPNIOBindingHandler.java:64)
at org.glassfish.grizzly.AbstractBindingHandler.bind(AbstractBindingHandler.java:140)
at org.glassfish.grizzly.AbstractBindingHandler.bind(AbstractBindingHandler.java:159)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:470)
at org.glassfish.grizzly.http.server.NetworkListener.start(NetworkListener.java:658)
at org.glassfish.grizzly.http.server.HttpServer.start(HttpServer.java:264)
at org.glassfish.tyrus.container.grizzly.GrizzlyEngine$1.start(GrizzlyEngine.java:88)
at org.glassfish.tyrus.server.TyrusServerContainer.start(TyrusServerContainer.java:119)
at org.glassfish.tyrus.server.Server.start(Server.java:122)
at org.neo.wordgame.server.WebSocketServer.runServer(WebSocketServer.java:23)
at org.neo.wordgame.server.WebSocketServer.main(WebSocketServer.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
at java.lang.Thread.run(Thread.java:744)
Please press a key to stop the server.Jun 04, 2014 10:28:04 AM org.glassfish.tyrus.server.Server stop
INFO: Websocket Server stopped.
.

도움이 되었습니까?

해결책

응용 프로그램은 $ openshift_diy_ip에서 포트 8080을 청취해야하지만 http://app-domain.rhcloud.com:8000 또는 http : // 앱-domain.rhcloud.com:8443 (SSL).$ OpenShift_DIY_IP에서 포트 8000에 바인딩하는 것은 작동하지 않습니다.

다른 팁

DeveloperErcomey 가 말합니다.openshift의 websockets에 대한 최신 뉴스는 이 블로그 게시물 이며,외부에서 8000/8443에 액세스합니다.

라이브 예제로서 WebSockets를 사용하여 openshift에 응용 프로그램을 배포했습니다. http://vinbudin-openshift.anthavio.net/ui http://vinbudin-openshift.anthavio.net:8000/ ui 더 나은 결과를 얻습니다

Request URL:ws://vinbudin-openshift.anthavio.net:8000/ui/PUSH/?v-uiId=0&v-csrfToken=bcd0c9a6-2a6f-4ddb-8332-7929e4337b2d&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.1.5.vaadin4-jquery&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&X-Cache-Date=0&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true
Request Method:GET
Status Code:101 Switching Protocols
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top