겨우 DMB로 보는데
지금 레전드로 불리는 사람들의 젊은 모습이 꽤 인상적이었다
그 중에서 필 콜린스가 피아노 치며 노래를 부르는데
초반에 피아노 음을 틀려 머쓱해하는 모습이
잡혔다 ㅋ
TV에서 볼 때는 중년이었는데
라이브에서는 앳 된 모습이 신선했다.
Take a look at me now~~~
전자정부 프레임워크는 기본으로 회원전용 서비스이다.
로그인을 해야만 사용할 수 있는데 blog처럼 누구나 와서 읽을 수 있는 서비스를 하려고 하면 좀 복잡하다.
간단하게 *.do 형태로 호출되는 서비스와
*.bog 로 호출되는 서비스를 나누어서 *.blog에서는 로그인 체크를 안하면 된다.
추가방법.
web.xml 에 추가 : 기존에 action 이라는 servlet이 있으므로 그 밑에 추가
<servlet> |
blog_servlet.xml 추가 : web.xml 에 정의된 경로에 추가
이것은 egov-com-servlet.xml 을 copy 한 것이고
기본 package 경로를 수정한다.
<context:component-scan base-package="사용할package명.blog"> |
Java Source로 Controller, Service, Repository 등을 생성한다.
(일단은 Contoller만 만들어서 되는지 확인하자)
@Controller |
index.blog 가 호출될 때 보여줄 jsp Page를 만든다
WEB-INF/jsp/blog/BlogMain.jsp
WEB-INF 밑에 index.jsp 에서
<jsp:forward page="/index.do"/> 를 호출하게 되어 있으므로
<jsp:forward page="/index.blog"/>로 바꾸어 준다.
전자정부 프레임워크로 프로젝트를 만들 때
1. 빈 프로젝트 에서 공통 컴포넌트들을 추가한다.
2. Template 프로젝트를 생성한 후 필요한 공통컴포넌트를 추가한다.
3. AllinOne 프로젝트를 생성한다.
2번의 경우에서 필요한 컴포넌트 추가하면 에러가 많이난다.
이유는 컴포넌트에 동일한 서비스가 이미 있는 경우가 있기 떄문이다.
RestdeManageService를 예로 들면
egovframework.com.sym.cal.service.impl/EgovCalRestdeManageServiceImpl
egovframework.let.sym.cal.service.impl/EgovCalRestdeManageServiceImpl
두개 파일이 동일한 @RestdeManageService 로 정의되어 있다.
그러면 어떤 것을 사용해야할 지 고민이 된다.
원본에는 let안에 있는데... com으로 바꿔야하나
아무튼 이런것들이 꽤 많다.
전자정부프레임워크 담당자는 빈 Web 프로젝트부터 시작하라고 한다.
http://www.egovframe.go.kr/uss/olh/qna/QnaInqireCoUpdt.do?qaId=QA_00000000000013099&passwordConfirmAt=
그래도 템플릿에서 시작하겠다고 하면
중복되는 애들의 @Controller, @Service, @Repository 를 하나를 없애고
참조하는 import 경로도 수정한다.
let가 기본인데 com으로 바꿀 때 import 를 수정하지 않으면 casting에러가 난다.
index 화면이 열리기까지의 과정이다.
1. globals.properties에 main page 경로 정의
(/egov_portal_shop/src/main/resources/egovframework/egovProps/globals.properties)
Globals.MainPage = /cmm/main/mainPage.do
2. controller 에서 정의
requestMapping의 value 에 Globals.MainPage 값을 넣어 준다.
각종 조회한 뒤 addAttribute로 넣은뒤
jsp로 넘긴다.("main/EgovMainView")
@RequestMapping(value = "/cmm/main/mainPage.do") |
3. jsp page
jsp Page에 대한 처리 정보는 servlet.xml 에서 한다
(/egov_portal_shop/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml)
<!-- 화면처리용 JSP 파일명의 prefix, suffix 처리에 대한 mvc 설정 --> |
기본으로 /WEB-INF/jsp/ 에 .jsp 파일을 설정해놨다
return "main/EgovMainView" 를 하게 되면
/WEB-INF/jsp/main/EgovMainView.jsp 파일을 찾는다.
(/egov_portal_shop/src/main/webapp/WEB-INF/jsp/main/EgovMainView.jsp)
하지만 이렇게 하면
호출되는 주소창에 다음과 같이 나온다.
http://localhost:8080/egov_portal/cmm/main/mainPage.do |
깔끔하게 루트로 보내려면
다음과 같은 작업을 한다.
나만의 서비스이므로 package를 새로만든다. robsoft
하지만 spring에서 component-scan에 의해 정해진 package만 사용되므로
base-package인 egovframework를 붙인다.
(/egov_portal_shop/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml)
<!-- 패키지 내 Controller, Service, Repository 클래스의 auto detect를 위한 mvc 설정 --> |
그래서 egovframework.rob.shop (shop은 내가 만들 모듈 명)으로 하고 controller class를 만든다.
egovframework.rob.shop.RobMainController
여기에 mainPage로 보낼 코드를 작성한다.
소스는 원래 있던 소스를 그대로 가져왔다.
/** |
그 다음 jsp Page
prefix로 /WEB-INF/jsp 가 붙으므로 경로는 다음과 같다.
파일명에도 뒤에 .jsp가 붙는다.
/egov_portal/src/main/webapp/WEB-INF/jsp/main/RobMainView.jsp |
마찬가지로 내용은 원본인 EgovMainView.jsp와 동일하게 했다.
그리고 호출할 때 index.jap파일도 수정해야 한다.
/egov_portal_shop/src/main/webapp/index.jsp
기본으로 index.jsp를 찾게 되고 거기에서 mainPage.do로 forwarding을 한다.
/cmm/main/mainPage.do를 그냥 mainPage.do 로 바꾼다.
원본 : <script type="text/javaScript">document.location.href="<c:url value='/cmm/main/mainPage.do'/>"</script>
수정본 : <script type="text/javaScript">document.location.href="<c:url value='/mainPage.do'/>"</script>
이러면 바로
http://localhost:8080/egov_portal/ 을 하면 바로 mainPage.do로 보인다.
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
[net.sf.log4jdbc.DriverSpy] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
여러 원인이 있다.
1. tomcat의 실제 lib 결로에 mysql jar 파일을 넣으라고도 하고
2. 여러 프로젝트로 인해 꼬였으니 clean 후 다시 배포하라고도 하는데
나의 경우에는 2번인 듯 하다.
똑같은 Project 소스를 이름만 다르게 했는데..
하나를 close project 한뒤에
clean 하고 다시 배포했더니 된다. ㅡ.ㅡ
음~ 수영을 다시 다니니 좋은점은
재밌다는 것이다.
(재미있는데 자꾸 남은 시간은 본다 ㅎㅎ)
수업이 시작하면
기본 자유형 4바퀴정도 하고
그날 그날 교정할 자세로 몇바퀴 돌고 * 2
30분쯤 되면 반대쪽으로 걸어갔다오면서 좀 쉬고
남은 20분 빡세게 돌다 끝난다
어쩌다 킥판을 드는 날은 맨 뒤로 가야한다.
하체부실 어쩔 ㅜ.ㅜ
자유형이나 평영을 하면 앞쪽으로
배영은 포지션이 애매~~하다.
맨 앞에서 하게 되면 따라오는게 부담이 되어 오버페이스를 하는 경우가 꽤 있다.
헉헉헉헉.. 머리도 띵하고
아무래도 쫓아가는게 체질인 듯 ㅎ
수업이 끝나고 종료인사 '수고하셨습니다'를 하고 돌아서 자유형으로 또 몇바퀴 돈다.
며칠전에는 플립턴을 간만에 했는데 코에 물이 많이 들어갔는지
제체기에 콧물에... 특별한 감기증상은 없으니 물이 들어가 알러지성 비염증세가 심해진 것 같다.
두르마리 화장지 1개정도 쓴 것 같음.
자리에 수북히 쌓이는 휴지... 민망해서 두어번 갖다 버리고
토요일에 병원가서 코찍 몇 번 뿌리고 나니 흐르는 건 좀 멈췄다.
근데 약을 4일치나 주다니...아침,저녁으로 총 8개. 항생제도 있고..
아무튼 다음주에 끝나고 자유형할때는 플립턴으로 한번 돌아야겠다 ㅋㅋㅋ
(벌써 한달이 지나가네.. 다음달까지만 등록해놨는데 연장을 해야하나)
새벽 몇시까지였는지 기억도 안난다.
넘 피곤했지만...
복구(?)에는 성공했다.
부팅영역 어딘가 문제가 있었던 것 같다.
option + R 을 누르면 멀티부팅 시 선택할 수 있는데
여기에서 정상적으로 맥OS, 윈도우즈가 나타났다.
혹시나 해서 윈도우로 띄워보니 역시나 잘된다.
그러나 맥은 같은 현상이다...
결국 윤철이에게 빌려 온 외장 DVD플레이어에
스노우 레파드(snow leopard)를 넣고 실행시켜서
어찌어찌 디스크 관리자를 열었는데
검사하보니 문제는 없다고 하네...
결구 OS를 새로 설치하는데
이상하게 잘 인식 안할 때가 있고 속도도 엄청 느렸다.
설치는 완료하고 자야했기에 졸린 눈을 비비고
날아드는 모기에도 불구하고
끝까지 설치완료 후 부팅까지 확인했다.
원래 멀티부팅할 때 프로그램을 써서 선택했었는데
시작OS를 윈도우로 설정할 수 있었다는것을 나중에 깨달음 ㅡㅡ.
(몇 년 동안 매번 선택했는데... 쩝)
이제는 전원버튼 누르고 딴짓해도 윈도우로 들어 감 ㅎㅎㅎ
한고비 넘겼으니 또 얼마나 버텨줄 지 모르겠넹
2006년에 구매했으니... 12년이면 많이 쓴건가?
갑자기 부팅이 안되고 연한 하늘색화면에서 계속 멈춰있다.
이것저것 복구방법을 써 봤으나 똑같다...
command + s 로 복구까지 해봤는데도...
마지막으로 재설치가 있는데
맥북에 있는 super drive는 이미 동작하지 않아 설치불가
dvd player를 구해서 다시 설치해봐야겠다.
이대로 녀석을 보내기엔... 너무 아쉬운데
전자정부 프레임워크 All in one 에서
web_allinone.xml 을 수정했는데
갑자기 에러가 난다.
cvc-complex-type.2.3: Element 'web-app' cannot have character [children], because the type's content type is element-only. web_allinone.xml /allinone/src/main/webapp/WEB-INF line 5 XML Problem |
저 부분은 건드린 것이 없는데...
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" |
1개의 element만 사용할 수 있다고 하는데
자세히 보면 xsi:schemaLocation에 두 개가 정의되어 있다.
그중에 xmlns:web에 똑같은 내용이 있어서
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd를 제거하니 오류가 없어진다.
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" |
첫 화면은 index.do 이다.
첫화면을 변경하기 위해서는 index.do 를 adminIndex.do 로 변경한 뒤에
index.do를 만들어 원하는 디자인을 입히면 될 것 같음.
--> 안된다 ㅜ.ㅜ
index.do를 다시 만들었는데... 자꾸 intercepter인가가 가로채서...
원래는 로그인 없이 사용할 수 있는 서비스로 보내려고 한건데.. 쩝.
일단 아래는 참고용으로 놔둠.
-----
EgovComIndexController.java |
@RequestMapping("/index.do") |
EgovLoginSesionCheck.jsp |
<% |
egovDevIndex.jsp |
<jsp:forward page="/index.do"/> |
index.jsp |
<jsp:forward page="/index.do"/> |
|
|
여기에서 일단 관리자는 adminIndex.do로 변경하면
1. adminIndex.jsp 생성(index.jsp 복사)
index.do 를 adminIndex.do 로 변경
2. EgovLoginSesionCheck는 세션이 없으면 기본으로 index.do 로 보내는 것이므로 그대로 둠.
3. EgovComIndexController 에는 adminIndex 추가
@RequestMapping("/adminIndex.do")
public String adminIndex(ModelMap model) {
return "egovframework/com/cmm/EgovUnitMain";
}