버그 예.


1. 클라이언트(브라우저)에서 jquery ajax 를 수행하여 GET request를 한다.

2. 서버가 GET request를 받고 routing을 수행하여 해당하는 데이터를 response한다.


Chrome, FF, Safari 의 경우 - 서버가 보낸 response를 받고 데이터를 확인한다.

IE 의 경우 - 서버가 보낸 response는 받으나 데이터가 없다.




서버쪽 로그를 확인해보니 특정한 GET 요청을 서버가 받지 못하고 있었다.


헌데 alert(‍), console.log() 등을 이용해서 확인해본 결과


ajax 수행은 error가 나지 않고 제대로 success 를 띄움



재밌는건 익스플로러의 개발자도구를 띄워놓은 상태에선 값을 잘 받아 온다는 점이다.




원인 및 해결 방법



URL이 같으면 IE의 ajax 연결은 cache를 사용하고 갱신하지 않는다는 것이다.


그래서 ajax 연결 시 URL을 매번 바꾸어주어야 한다는 것


간단한 해결 방법은 시간과 같이 매번 변하는 파라메터를 같이 날려 주는 것


http://localhost:8080/session

=> http://localhost:8080/session?1260790889296



제이쿼리에서는 

jQuery.ajaxSetup({cache:false});

와 같이 캐쉬사용을 끄는 옵션도 있지만 간혹 적용이 안되는 경우도 있는 것 같다.


전자정부 프레임워크를 사용하다 보면 미친듯한 메모리 점유율에 이클립스가 뻗어버릴때가 종종 있다.


이경우 이클립스에 힙메모리 할당만 어느정도 조절해 준다면 보다 원활한 작업을 진행 할 수가 있다.


먼저 eclipse.ini 파일을 열어 본다



-vmargs << 요 아랫부분을 수정해 준다.



---- 이 아래 부분을 복사해 넣는다 --------

-Dfile.encoding=UTF-8

-Dosgi.requiredJavaVersion=1.7

-Xverify:none

-XX:+UseParallelGC

-XX:-UseConcMarkSweepGC

-XX:PermSize=128M

-XX:MaxPermSize=128M

-XX:MaxNewSize=128M

-XX:NewSize=128M

-Xms512m

-Xmx512m

-----------요기까지--------------


-Xverify:none => 클래스의 유효성을 검사 생략. (시작 시간이 줄어 빨라진다.)
-XX:+UseParallelGC => 병렬 가비지 컬렉션 사용. (병렬 처리로 속도 향상)
-XX:+AggressiveOpts => 컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다.
-XX:-UseConcMarkSweepGC => 병행 mark-sweep GC 수행하여 이클립스 GUI의 응답을 빠르게한다.
-XX:+CMSIncrementalMode=true => 점진적인 GC

-XX:PermSize=128M        => Permanent Generation(영구 영역) 크기(Out Of Memory 에러시 크기 조절)

-XX:MaxPermSize=128M  => 최대 Permanent Generation 크기

-XX:NewSize=128M         => New Generation(새 영역) 크기

-XX:MaxNewSize=128M   => New Generation(새 영역) 의 최대 크기


-Xms512m : 이클립스가 사용하는 최소 Heap 메모리
-Xmx512m : 이클립스가 사용하는 최대 Heap 메모리
                     최소와 최대를 같은 값으로 설정하면 오르락 내리락 하지않아 빨라진다.
[메모리 정의 예]
1 기가 이하 메모리인 컴퓨터인 경우 => -Xms256m -Xmx256m
2 기가 ~ 3 기가 메모리인 컴퓨터    => -Xms512m -Xmx512m
4기가 이상 메모리인 컴퓨터            => -Xms1024m -Xmx1024m




에러가 발생 했을때 에러 메세지가 그대로 노출 되는 팝업창의


문구를 변경하고 싶어서 한참 해매다 결국 엠로의 기술지원센터에 문의해서 답변을 받았다.




src/flex/preloads/environments.mxml  파일의 remote 펑션에서


if (!event.isDefaultPrevented()) {

SCAlert.show(em.faultDetail, em.faultString, false, 4, null, function():void {

if(em.faultCode == "1") {

var request:URLRequest = new URLRequest("/");

request.method = URLRequestMethod.POST;

navigateToURL(request, "_self");

}

});

}


이 부분을





if (!event.isDefaultPrevented()) {

/* 서버 연결시 팝업 메세지 변경으로 인한 주석처리

SCAlert.show(em.faultDetail, em.faultString, false, 4, null, function():void {

if(em.faultCode == "1") {

var request:URLRequest = new URLRequest("/");

request.method = URLRequestMethod.POST;

navigateToURL(request, "_self");

}

});

*/ 

// 문구 변경을 위한 추가 

if(em.faultCode == "1"){ //세션타임아웃 

var request:URLRequest = new URLRequest("/"); request.method =                                                 URLRequestMethod.POST; navigateToURL(request, "_self"); }

else{

SCAlert.show("원하는 문구를 이곳에 넣으면 됩니다.","팝업창 제목"); }


}




이렇게 변경 하고 scalert 에 원하는 문구를 넣으면 된다.



이클립스를 켜면 


An error has occurred. See error log for more details. java.lang.AbstractMethodError 


라는 에러 메세지가 계속해서 나오는 경우가 있다


확인해보니 자바버전의 문제 였다


전자정부 프레임워크의 버전이 2.7 버전일 경우 jdk 1.7 이하의 버전을 써야 한다고 한다.


이클립스의 windows - preferences - Java - Copiler 에 가면 컴파일러 레벨 이라고 되어 있는 콤보박스에서


현재 설치되어 있는 jdk의 버전을 설정 할 수가 있다.


여러 프로젝트를 하면서 jdk의 버전을 각각 변경해야 하는 경우가 있는데 컴파일러 버전을 바꾸어 주는 것이


빠르고 편리한 것 같다.


회사에서 처음 노트북을 지급받고 이클립스 자바 등등등을 설치 한 후 실행을 해보면

404에러가 뜨는 경우가 많다. 경로를 찾지 못해서 나타나는 에러인데 

에러가 나는 부분도 없는데 에러가 나는 경우가 있다. 이런 경우 서버를 체크해보자!


보통 이런 경우는

서버에 루트 지정이 잘못된 경우이다.


해당서버 컨피그 폴더안에 있는


server.xml 파일 Context 태그 안에 path설정을 해주어야 한다. 


아마 path에 /프로젝트이름 

으로 되어 있거나 다른 이름들이 들어가 있는 경우일텐데

보통 그냥 "/" 이걸로 바꿔주면 실행이 될 것이다. 도메인 뒤에 다시 프로젝트이름이 나타나는건 보기 안좋기 때문에

그냥 저렇게 하는 듯 하다.



포스팅이 도움이 되셨다면 마우스를 조금만 움직여서 

공감하기를 눌러주세요 블로거에게 큰 힘이 됩니다~! 


가끔 이클립스를 띄우면 나타나는 에러창이다.


뭐 업데이트 하려는데 삔또가 나갔다 이런말 같은데


Window -> Preferences -> Maven -> Download repository updates index on startup


로 해결하자.


포스팅이 도움이 되셨다면 마우스를 조금만 움직여서 

공감하기를 눌러주세요 블로거에게 큰 힘이 됩니다~! 

an exception has been caught while processing the refactoring delete resource 에러가 나는 경우.


프로젝트를 지우려는데 일부만 지워지고 나머진 안지워지고 에러창이 난다...


이클립스에서 지우려고 하는데 어딘가에서 쓰고 있기 때문이다.


github 에서 검색중 발견한 댓글


This is probably going to be a limitation on windows which locks the files in use. bndtools is using bnd which is using the plugins in cnf. On a sane file system, they can be deleted. I supposed the only thing that could be done is to set the files up for deletion on vm exit.

You can, of course, complete the deletion from the command line after exiting eclipse.



대충... 그냥... 다른데서 쓰고 있으니까 못지운다는 얘기 같은데...


서버 끄고 이클립스 끄고 다시 열어서 지우니까 지워진다.




포스팅이 도움이 되셨다면 마우스를 조금만 움직여서 

공감하기를 눌러주세요 블로거에게 큰 힘이 됩니다~! 


+ Recent posts