본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework

Software caused connection abort: socket write error

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 4. 29.

 

 

해당 오류는 소캣이 끊어진 상태에서 끊어진 소캣을 다시 활용해서 응답(Response)하는 경우 발생하는 에러이다.

일반적인 상황에서는 잘 발생되지 않으며,

사용자가 직접 구현한 소켓서버에서의 close현상 이라던지,

데이터베이스와의 연결에서의 문제로 인한 것 이라던지,

서버의 timeout이 짧아 발생하던지..3가지 정도가 구글링을 하니 찾을 수 있는 내용 이였다.

하지만 이번에 만난 경우는 3가지 중 해당되는 것은 없었 던 것 같다.

1. 상황

서블릿에서 제공되는 Filter를 상속받아 주고받는 데이터에 따른 필터링을 했었다.

주고받는 데이터를 확인하여 유효하지 않는 요청값은 데이터베이스나 컨트롤러에 아에 접근 못하게 하는 역할을 하는 기능이였었다.

처음에는 아무런 오류가 나지 않았는데, 간혹가다 저러한 오류를 뱉는 것이였다.

2. 해결

Filter클래스를 상속받아 구현한 클래스는 일반적으로 web.xml에 등록하여 사용한다.

마찬가지로 직접 만든 필터를 web.xml에 등록하였는데 url-pattern을 모두 확인하는 것으로 만든 것이 잘못 되었다.

즉 일반 text파일이나 jpg, png 및 js 파일 등등..굳이 검사하지 않아도 될 항목을 직접 만든 필터가 모두 검사함으로써 이미 빠르게 응답이 종료된 행위에 대해서 다시 응답하다 발생 한 것이다.

이를 해결하기 위해 url-pattern 부분에 * 표시를 컨트롤러만 바라보도록 바꾸었다.(전자정부라 *.do로 하였었다)

사실 큰 문제는 아니지만, 계속해서 오류를 만드는 서버가 보기 싫어서 몇일간 찾느라 고생하였 던 것 같다.

	<filter>
		<filter-name>myfilter</filter-name>
		<filter-class>egovframework.co.kr.myfilter.AllowRequestFilterChecker</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>myfilter</filter-name>
		<url-pattern>*.do</url-pattern>   <!-- 요부분에 *(Asterisk)만 사용해서 매핑했었다.. -->
	</filter-mapping>

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글