지난 번 잠시 언급한 적이 있지만 현재 Spring 3.1.1 + MyBatis + jQuery + Bootstrap을 이용하여

업무에 사용할 작은 사이트를 만들고 있다.


기업체의 내부망에서 작업하는 중이라 소스를 공개하지 못하는 것이 못내 아쉽다.


사실 Spring을 다시 만져보는 것이 거의 7년만이라 약간의 낯설음은 있지만 그 낯설음을 상쇄할만한

변화가 있었기에 어렵지 않게 다시 시작해 볼 수 있었다.


그래도 어디 세상 일이 밥 달라면 밥 나오고 물 달라면 물 나오던가?

이래 저래 소소한 에러들을 자주 접하게 된다. 그리고 언제나 그렇듯 아무 것도 아닌 문제로

반나절을 그냥 날리기도 하고...


어차피 전문적인 내용이야 볼 수 있는 곳이 천지니 나는 내가 겪은 에러나 정리하련다.


1. Mapped Statemets collection already contains value for...

톰캣을 기동하는데 이런 메시지가 나오면서 디플로이가 제대로 안되었다.

얼핏 메시지 내용을 봐서는 어딘가 중복된 설정이 있거나 id명을 중복해서 썼거나 했을 것 같았는데...

나같은 경우 특정 Mapper의 Query문에 문제가 있었다.

갑자기 기억이...쿼리 자체의 오류였다기보다는 MyBatis 쿼리 설정 상의 문제였던가? 

하여간 이런 오류 만나면 Mapper에 있는 쿼리도 잘 살펴야 한다.


2. requestmappinghandlermapping did not find handler method for

요건 메시지 내용대로 request에 대한 mapping이 잘못되어 요청한 리소스를 찾을 수 없다는 뜻이다.

요런 것이 참 별것도 아니면서 시간 잡아먹는 하마다.

문제의 원인은 Controller에는 request parameter를 userId로 해놓고는 jQuery의 ajax 호출 시

파라미터 명을 userID라고 써서 발생한 문제였다.


3. Invalid bound Statement (not found): Mapper.function

요것도 메시지를 눈여겨 보면 답이 나온다.

문장과 Mapper의 함수가 연결이 안된다잖는가~

바로 Mapper.xml에 있는 쿼리 id와 Mapper.java에 있는 메소드 명이 달라서 발생한 문제다.


4. 건 에러는 아니지만 get방식으로 request할 때 한글 깨지는 문제 처리 방법이다.

클라이언트 측 : jQuery에서 한글로된 인자를 넘길 때 encodeURI(encodeURIComponent(value))로 넘긴다.

서버 측 : Controller에서 한글 인자를 받을 때 URLDecoder.decoded(value)로 처리해준다.


참...적어놓고 보니 초급자 수준의 실수가 날 울리네....ㅠ.ㅠ







블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

Tag error, Spring

댓글을 달아 주세요

최초 작성일 : 2012/04/13 15:48 


SVN 서버 물리적 저장소 용량 부족해서 commit이 안된다고 TA한테 공간

확보좀 해달라고 했더니 서버에서 파일을 덜렁 지워버렸다...-.-

갑자기 리비전 정보가 사라지니 클라이언트에서 서버에 붙을 때
제목과 같은 오류가 발생을 하였다.

결국 temp쪽에 있던 리비전 파일들을 repository로 옮겨놓고나서야
정상 작동하게 되었다.

제목과 같은 오류에서는 repository가 정상적으로 링크되어있는지,
리비전 파일을 임의 삭제한 적은 없는지 확인이 필요하다.

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/07/29 00:56 


iPhotoDiary 앱을 수정 작업 하는 중에

갑자기 당황스러운 문제에 부딪쳤다.

일기를 작성하는 부분에서 잘 작동하던 사진을 새로 찍어 추가하는 기능을
실행하니 아래와 같은 메시지가 떨어지면서 앱이 죽는 것이었다.

2010-07-29 00:32:32.376 iPhotoDiary[22106:307] Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.
2010-07-29 00:32:32.378 iPhotoDiary[22106:307] Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate

열심히 구글링을 해봤지만 딱부러지는 해결책을 찾을 수는 없었고
다만 SDK쪽의 버그가 아닌가 하는 글 들만 볼 수 있었다.
만약에 그렇다면 애플의 패치가 있을 때까지 내 소중한 앱이 제대로 기능을 하지
못하기에 속이 탔다.

그러다가 문제 발생 지점이

[self presentModalViewController:picker animated:YES];


이 코드라는 점과 메시지 내용중에 animation이 언급된 것에 착안하여

위 코드를 단순하게 아래와 같이 바꿨다.


[self presentModalViewController:picker animated:NO];


그러자 거짓말같이 문제가 없어지고 사진 찍는 기능이 정상적으로 작동했다.

물론 카메라 뷰가 뜰 때 애니메이션 효과는 없다...-.-


어찌 되었건 내 손에서 해결이 되었다는게 어딘가...-.-

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/05/15 08:37


자문 자답이네요...

문서에 보면 라이브러리를 추가시키고 헤더파일들만 복사해다가 쓰라고 되어있는데
이 컴파일된 라이브러리에 문제가 있는 것 같습니다. 그냥 전체 소스를 복사해서 프로젝트에
포함시키고 전체 컴파일을 하니 잘 돌아가네요...^^;;;

===========================================
현재 개발 중인 앱에 사용하기 위해 구글코드를 통해 iphone-exif라는
jpeg 파일에서 exif 정보를 추출하는 라이브러리를 구했다.
문서에 있는대로 프로젝트에 적용을 시키고 기본 코드를 다음과 같이 작성하였다.
.
.
.

NSData * uiJpeg = UIImageJPEGRepresentation (image, 1.0 );

EXFJpeg* jpegScanner = [[EXFJpeg allocinit];

[jpegScanner scanImageData: uiJpeg];

.

.

.

그런데 세 번 째 줄 실행시 다음과 같은 오류가 발생을 하였다.


2010-05-15 08:28:56.639 iPhotoDiary[6238:207] *** +[EXFMetaData dataWithBytes:length:]: unrecognized selector sent to class 0x236ac

2010-05-15 08:28:56.644 iPhotoDiary[6238:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[EXFMetaData dataWithBytes:length:]: unrecognized selector sent to class 0x236ac'


일단 dataWithBytes:length: 메서드는 NSData 클래스에 있는 메서드인데

어째서 EXFMetaData에서 오류가 발생하는지 모르겠다.


더군다나 EXFMetaData 클래스는 NSObject를 상속받고 있고

dataWithBytes:length: 메서드가 선언되어있지도 않다.


라이브러리 소스를 보면 EXFJpeg 클래스에 있는 scanImageData:(NSData *)data

메서드 내에서 호출하는 processComment 메서드의 다음 라인에서 에러가

발생하는 것 같다.


// get the comment characters - currently use iso latin - could this be different?


NSData* commentData = [NSData dataWithBytes:imageBytePtr length:length]; 


의심이 가는 곳은 2개의 인자 중 적어도 하나가 문제가 있는 것 같은데

여전히 해결의 실마리는 보이질 않는다...ㅠ.ㅠ

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요

최초 작성일 : 2010/05/09 08:33


Getting errors like the one above when switching from the iPhone Simulator to an actual device?

Turn off MallocStackLogging.

블로그 이미지

마즈다

이제 반백이 되었지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

댓글을 달아 주세요