2012-04-01 3 views
2

그리즐리/글래스 피쉬에서 작동하는 WebSocket을 얻으려고합니다. the sample WebSockets chat application을 복제하고이를 Glassfish 3.1.2에 배포했습니다. 그러나 WebSocket을 연결할 수 없습니다. 405 (Method Not Allowed) 응답을 받기 때문에 WebSockets 핸드 셰이크가 실패합니다. 이 때문에 서블릿에 무엇을 의미합니다 :그리즐리/글래스 피쉬 - 웹 소켓 핸드 셰이크 설정

public class WebSocketsServlet extends HttpServlet { 

    private final ChatApplication app = new ChatApplication(); 

    @Override 
    public void init(ServletConfig config) throws ServletException { 
     WebSocketEngine.getEngine().register(app); 
    } 

    @Override 
    public void destroy() { 
     WebSocketEngine.getEngine().unregister(app); 
    } 
} 

가 지정되지의 doGet 방법이 없다을, 그래서 당신은 서블릿에서 핸드 셰이크 로직을 구현해야하는 경우 더 많은 구성 어딘가에 필요한, 또는이 있는지 궁금 하군요 직접 doGet 메서드?

+0

+1 지금 당장이 문제를 해결하고 있습니다 ... 그리고 방금 해결책을 찾았습니다 ... – Quaternion

답변

2

글래스 피쉬 3.1.2에서 동일한 오류가 발생하여 grizzly-websockets-chat-2.1.9.war를 사용하려고했습니다.

(나는 버전이 있지만 파일의 시간 스탬프 2012 1월 30일 있습니다는 옛 것을 나타냅니다 생각) 여기에있는 버전을 사용하는 상태 페이지 http://www.java.net/forum/topic/glassfish/glassfish/websocket-connection-not-establishing-glasshfish-server-how-fix-it-0

에서 조언을 이어 :

WAR

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.grizzly.samples&a=grizzly-websockets-chat&v=1.9.46&e=war

출처

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.grizzly.samples&a=grizzly-websockets-chat&v=1.9.46&e=jar&c=sources

전쟁을 통해 모든 것이 효과가 있습니다.

glassfish 웹 콘솔을 사용하는 경우. 다음과 같이 웹 소켓을 활성화 할 수 있습니다.

구성> server-config> 네트워크 구성> 프로토콜> http-listener-1, HTTP 탭> 아래로 스크롤하여 Websocket Support를 선택하십시오.

주 구성> 기본적으로 설정> ... 또한 당신이 주변에 터미널을 유지하는 것을이 더 대륙을 찾을 수있는 동일한 옵션

있습니다.

+0

감사합니다. 그리즐리 메일 링리스트에 메시지를 게시하고 글 리즐리의 2.x 줄이 글래스 피쉬 3.x에서 지원되지 않는다는 사실을 알았습니다. 어리석은 작은 것들 ... –

1

websocket 지원을 사용하도록 설정하지 않은 것 같습니다 (기본적으로 사용되지 않음).

및 asadmin 설정 configs.config.server-config.network-config.protocols.protocol.http 청취자 1.http.websockets - 지원 - :

다음 명령을 실행 한 다음 서버를 다시 시작 enabled = true

WS 지원을 사용하려는 모든 HTTP 수신기로 http-listener-1을 바꿀 수 있습니다.

+2

config 옵션을 설정하고 서버를 다시 시작했지만 Glassfish에서 405 응답을 계속 받았습니다. 섬기는 사람. –

+0

'ws : // localhost : 8080/WebSocket-1/message'에 대한 WebSocket 연결에 실패했습니다. 예기치 않은 응답 코드 : 404, glassfis v : 4 –