개발환경 v3.8 웹소켓메신저 재질문
- 작성자 :
- 전*원
- 작성일 :
- 2019-06-05 16:14:10
- 조회수 :
- 1,967
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요 몇일전 웹소켓 메신저 404에러로 질문올렸었는데요
아무리해도 ws://localhost:8080/erp//usersServerEndpoint 경로로
usersServerEndpoint @ServerEndpoint를 찾지 못합니다.
1.
해당 @ServerEndpoint가있는 클래스를 @Controller와 @RequestMapping맵핑을 하면 잘 동작하지만
@ServerEndpoint로 바꾸면 404
2. @Controller로 바꿔놓고 생성자안에 sysout찍으면 서버 기동과 함께 해당 클래스생성
@ServerEndpoint로 다시 바꾼지 기동하면 sysout안찍힘
3.
v3.8버전에 서블릿 파일인 egov-com-servlet.xml 안에
<bean id="userServer" class="egovframework.com.ext.msg.server.UsersServerEndPoint"/>
이런식으로 등록을 하면 생성자 찍힘
4.
서블릿파일에는 모두 <context:component-scan base-package="egovframework"></context:component-scan>
로 따로 exclude-filter, include-filter 적용해놓지 않음
v3.8버전에서 웹소켓메신저 추가하고 정상작동 확인하셨다고 하는데
해당 pom.xml과 EgovWebApplicationInitializer.java등의 설정은 아예 안하신건지
왜 똑같은 버전에 똑같은 컴포넌트추가한건데 동작하지 않는건지 궁금합니다.
성실한 답변 부탁드리겠습니다.
참고로 공통3.8 올인원에서도 위와같은 404에러가 발생합니다.
크롬버전
(최신) 75.0.3770.80(공식 빌드) (64비트)
아무리해도 ws://localhost:8080/erp//usersServerEndpoint 경로로
usersServerEndpoint @ServerEndpoint를 찾지 못합니다.
1.
해당 @ServerEndpoint가있는 클래스를 @Controller와 @RequestMapping맵핑을 하면 잘 동작하지만
@ServerEndpoint로 바꾸면 404
2. @Controller로 바꿔놓고 생성자안에 sysout찍으면 서버 기동과 함께 해당 클래스생성
@ServerEndpoint로 다시 바꾼지 기동하면 sysout안찍힘
3.
v3.8버전에 서블릿 파일인 egov-com-servlet.xml 안에
<bean id="userServer" class="egovframework.com.ext.msg.server.UsersServerEndPoint"/>
이런식으로 등록을 하면 생성자 찍힘
4.
서블릿파일에는 모두 <context:component-scan base-package="egovframework"></context:component-scan>
로 따로 exclude-filter, include-filter 적용해놓지 않음
v3.8버전에서 웹소켓메신저 추가하고 정상작동 확인하셨다고 하는데
해당 pom.xml과 EgovWebApplicationInitializer.java등의 설정은 아예 안하신건지
왜 똑같은 버전에 똑같은 컴포넌트추가한건데 동작하지 않는건지 궁금합니다.
성실한 답변 부탁드리겠습니다.
참고로 공통3.8 올인원에서도 위와같은 404에러가 발생합니다.
크롬버전
(최신) 75.0.3770.80(공식 빌드) (64비트)
A
안녕하세요.
표준프레임워크센터 입니다.
HTTP와 소켓은 통신 방식이 다릅니다.
따라서 @Controller와 @RequestMapping을 사용하여 URL을 호출하면
HTTP방식으로 당연히 잘될것입니다.
브라우저 주소창에서 다음처럼 호출하게 되면
ws://localhost:9800/testWebMsg/usersServerEndpoint
HTTP웹이 아니므로
ERR_DISALLOWED_URL_SCHEME 등의 메시지를 출력할 것입니다.
3. 빈으로 올린다든가 4번같은 수정은 필요하지 않습니다.
pom.xml이나 EgovWebApplicationInitializer.java의 설정도 바꾸지 않았습니다.
결론적으로 자체 테스트 결과
톰캣 WAS와 mysql DB를 사용하였으며 별다른 설정을 수정하지 않고도
정상적으로 수행이 되었습니다.
시큐리티 설정에서 걸릴수도 있으므로
Globals.Auth = session으로 설정하고 테스트를 시도하실수도 있습니다.
다음 파일을 수정하시면 됩니다.
src/main/resources/egovframework/egovProps/globals.properties
감사합니다.
표준프레임워크센터 입니다.
HTTP와 소켓은 통신 방식이 다릅니다.
따라서 @Controller와 @RequestMapping을 사용하여 URL을 호출하면
HTTP방식으로 당연히 잘될것입니다.
브라우저 주소창에서 다음처럼 호출하게 되면
ws://localhost:9800/testWebMsg/usersServerEndpoint
HTTP웹이 아니므로
ERR_DISALLOWED_URL_SCHEME 등의 메시지를 출력할 것입니다.
3. 빈으로 올린다든가 4번같은 수정은 필요하지 않습니다.
pom.xml이나 EgovWebApplicationInitializer.java의 설정도 바꾸지 않았습니다.
결론적으로 자체 테스트 결과
톰캣 WAS와 mysql DB를 사용하였으며 별다른 설정을 수정하지 않고도
정상적으로 수행이 되었습니다.
시큐리티 설정에서 걸릴수도 있으므로
Globals.Auth = session으로 설정하고 테스트를 시도하실수도 있습니다.
다음 파일을 수정하시면 됩니다.
src/main/resources/egovframework/egovProps/globals.properties
감사합니다.