

servlet-context.xml에 WebSocketHandler를 정의할 때 지정한 path가 Dispatcher Servlet에 의해 스캔되지 못했기 때문
현재 web.xml에 등록되어 있는 Dispatcher Servlet은 하나인 상태이고, *.do url에 대해서만 식별하고 있다.
해결 : WebSocketHandler의 path를 /webSocket.do와 같이 Dispatcher Servlet의 url pattern과 맞춰주니 정상적으로 WebSocket connection이 생성되었다.
<!-- servlet-context.xml -->
<!-- WebSocket Handler-->
<bean id="webSocketHandler" class="com.portfolio.www.alarm.WebSocketHandler" />
<websocket:handlers>
<websocket:mapping handler="webSocketHandler" path="/websocket.do"/>
<!-- webSocketSession에 HttpSession을 올려야해서 필요 -->
<websocket:handshake-interceptors>
<bean class="org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor"/>
</websocket:handshake-interceptors>
</websocket:handlers>
<!-- web.xml -->
<!-- Spring servlet start -->
<servlet>
<servlet-name>pf</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>pf</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>