달력

92021  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  

맥에서 java8 현재 RC1을 사용하고 있는데, jsp가 컴파일이 안 되는 이슈가 있네요.


HTTP Status 500 - Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files Stacktrace:


type Exception report

message Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files Stacktrace:

description The server encountered an internal error (Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files Stacktrace:) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 1 in the generated java file
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.28 logs.


Apache Tomcat/7.0.28

환장했습니다.

이클립스에서 톰캣의 런타임 JRE를 java7으로 강제 지정하니 잘 동작합니다.
ctrl+3 에서 runtime 으로 검색하고 Preferences > Runtime Environments 선택합니다.


톰캣을 선택하고 Edit... 버튼을 클릭합니다.


JRE: 항목이 Java SE 8로 되어 있군요. SE(시)8


Workbench default JRE 는 이클립스 워크스페이스에서 기본 지원하는 버전을 사용하는데, 그냥 맘편하게 Java SE 7 으로 지정하는 것도 나쁘지 않습니다. 기본환경이 언제 저를 배신할 지 모르기 때문이죠.


정식 Java SE 8이 나오면 제대로 잘 되기를 바래봅니다.

아, 오라클



Posted by 케누 kenu허광남

댓글을 달아 주세요

업무처리 (Business Logic Layer)  


업무처리 레이어는 업무 프로그램의 업무 로직을 담당하는 레이어로서, 업무 흐름 제어, 에러 처리 등의 기능을 제공합니다.  

<그림> 업무처리 레이어 구성  



업무처리 레이어는 Spring Web Flow, Spring 이상 2가지 오픈소스를 사용합니다.  

프로세스 제어(Process Control)을 담당하는 웹 플로우는 페이지 흐름(flow)의 정의와 수행을 처리합니다.  

에러 처리(Exception Handling)는 표준프레임워크 기반의 시스템 개발시 Exception에 따라서 특정 로직을 실행하여 Exception에 따라 적절한 대응을 할 수 있습니다.  



데이터처리 (Persistence Layer)  

데이터처리 레이어는 데이터를 다루는 역할을 전담하며, 데이터베이스에 대한 연결 및 영속성 처리, 선언적인 트랜잭션 관리를 제공합니다. 데이터처리 레이어의 구성은 다음과 같습니다.  

<그림> 데이터처리 레이어 구성  



데이터소스(DataSource)와 트랜잭션(Transaction)은 스프링을 사용합니다.  
데이터 접근(Data Access)는 iBatis를 사용하고 있으며, SQL Mapper를 통해서 XML로 정의된 SQL을 활용합니다.  
ORM(Object-Relational Mapping)은 하이버네이트(Hibernate)를 사용하고 있습니다. 하이버네이트는 자바 객체와 관계형 데이터 모델 간의 매핑을 위한 도구이며, 자동 생성된 쿼리 서비스를 지원하는 강력한 고성능의 퍼시스턴스 프레임워크입니다.


연계통합 (Integration Layer)  

연계통합 레이어는 다른 시스템과 데이터 교환을 지원하는 역할을 합니다. 연계통합 레이어의 구성은 다음과 같습니다.  

<그림> 연계통합 레이어 구성  



Naming Service, Integration Service, Web Service 등 총 3개 서비스를 제공합니다.  
네이밍 서비스(Naming Service)는 스프링을 이용합니다.  
인테그레이션 서비스(Integration Service)는 표준프레임워크 기반의 시스템이 다른 시스템과의 연계를 위해 사용하는 Interface의 표준을 정의한 것입이다.  
웹 서비스(Web Service)는 아파치 CXF를 사용합니다. 공개되어 있는 웹 서비스를 호출하고, 처리 결과를 돌려줍니다. 개발한 업무 모듈을 웹 서비스로 공개할 수 있도록 프록시(Proxy) 등을 제공하고, 완성된 웹 서비스로 공개합니다.

Posted by 케누 kenu허광남

댓글을 달아 주세요

화면처리 레이어(Presentation Layer)

화면처리 레이어는 MVC(Model-View-Controller) 패턴에서 View에 해당합니다. 화면처리 레이어의 구성은 다음과 같습니다.  


<그림> 화면처리 레이어 구성  




Spring MVC, Internationalization, Ajax Support, Security, UI Adaptor 이상 5가지 기능을 제공합니다.  


MVC 패턴의 프레임워크는 스프링 MVC, 스트럿츠(Struts), 웹워크(Webwork) 등이 있지만, 표준프레임워크에서는 스프링 MVC를 채택하였습니다.  


국제화(Internationalization) 기능은 다국어를 처리하는 방법입니다. 스프링 MVC의 LocaleResolver를 이용합니다. 브라우저 헤더, 세션, 쿠키 등에 있는 언어 정보를 이용해서 해당 언어로 페이지를 보여주는 기능입니다.  


Ajax 지원은 AjaxTags 라이브러리를 이용합니다. Ajax를 이용해 자주 사용되는 기능을 custom tag형태로 제공합니다.  


인증, 권한 같은 일반적인(통상적인) 개념의 Security 서비스는 Spring Security를 활용한 공통기반 레이어에

서 제공합니다. 화면처리 레이어의 Security 서비스는 입력값 유효성 검증 기능을 제공한다. 스프링과 연결되는 자카르타 커먼스 밸리데이터(Jakarta Commons Validator)를 이용합니다.  


UI 어댑터는 표준프레임워크와 RIA(Rich Internet Application) 솔루션을 연결하기 위한 기능입니다. 마이플랫폼 등의 상용 솔루션과 연결을 지원하는 기능입니다.  


Posted by 케누 kenu허광남

댓글을 달아 주세요

전자정부 표준프레임워크의 실행환경은 애플리케이션 프레임워크와 라이브러리 39가지가 8개의 서비스 그룹으로 구성되어 있습니다.



그림과 같이 공통기반 위에 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리, 모바일 화면처리, 모바일 디바이스 API 레이어(Layer)들이 있습니다. 


공통기반 (Foundation Layer) 

공통기반 레이어는 아래 그림과 같이 구성되어 있습니다. 20가지 기능별 컴포넌트들은 실행환경의 각 레이어에서 공통적으로 사용되는 기능을 제공합니다.    



AOP, Cache, Compress/Decompress, Encryption/Decryption, Excel, File Handling, File Upload/Download, FTP, ID Generation, IoC Container, Logging, Mail, Marshalling/Unmarshalling, Object Pooling, Property, Resource, Scheduling, Server Security, String Uril, XML Manipulation 이상 20가지의 공통기능을 제공합니다.

이 중에서 가장 주의깊게 봐야할 것이 IoC Container입니다. 스프링의 핵심이고, 이것을 기준으로 표준프레임워크의 애플리케이션 패턴이 이루어집니다. 나머지 기능들도 각기 중요한 역할을 하기 때문에 후반에 하나씩 살펴보겠습니다.   



Posted by 케누 kenu허광남

댓글을 달아 주세요

pom.xml에 다음 코드를 추가하면 mvn tomcat:run 으로 프로젝트를 실행할 수 있습니다. 설치된 톰캣이 없어도 톰캣은 자동으로 다운로드합니다.

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

from: http://tomcat.apache.org/maven-plugin-2.1/

Posted by 케누 kenu허광남

댓글을 달아 주세요

계룡대에 가서 전자정부 표준프레임워크 강의 때 인터넷이 안 되서 많이 힘들었습니다.

이런 젠장

메이븐 쓰는데, 인터넷이 연결 안 된다니.

말년에 노 인터넷이라니...


넥서스가 대안이라고 생각했는데,

쉽지 않네요.





Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. reikop.com  댓글주소 수정/삭제 댓글쓰기 2013.08.15 16:09 신고

    저도 6월즈음 계룡대 해군쪽에서 전자정부프레임워크 교육을 진행했었지요..
    미리 Repository를 준비해가서 무리없이 교육했었습니다

7zip으로 압축된 실행파일을 통해서 설치하면 됩니다.




C:\ 에 설치하는 것을 권장합니다.




Posted by 케누 kenu허광남

댓글을 달아 주세요

전자정부 표준프레임워크를 공식 사이트에서 다운로드 받는 것은 쉽지 않습니다.

Q&A 게시판에 다운로드 안 된다는 얘기가 빈번합니다.


보안 네트워크 때문이라고 얼핏 기억하는데요.


이런 속도가 나옵니다. 500M/1시간


2.6부터는 installer를 통해서 설치하게 되어있는데, 이것을 다시 zip으로 다시 묶어놓았습니다. 크게 용량이 줄지는 않았습니다.


풀버전입니다.

혹시 급한 분들에게 도움이 될까해서 아마존 S3에 파일을 올려놓았습니다.

http://bit.ly/okegov260


원사이트는 이곳입니다.


릴리즈 일자: 2013.06.05



Posted by 케누 kenu허광남

댓글을 달아 주세요

모바일 웹(jquery mobile)에 하이브리드앱을 만들 수 있는 모바일 디바이스 API(폰갭)이 추가되었습니다.



from: http://www.egovframe.go.kr/cop/bbs/selectBoardArticle.do?menu=4&submenu=2&bbsId=BBSMSTR_000000000004&nttId=479

Posted by 케누 kenu허광남

댓글을 달아 주세요

허드슨 새 작업 만들기로 서브버전과 연결합니다.


새 작업 화면에서는 프로젝트명과 스타일을 정합니다. ok.egov 라고 프로젝트명을 입력합니다.
작업 스타일은 메이븐을 사용하기 때문에, 두 번째 항목인 Build a maven2/3 project 를
선택합니다. ok 버튼을 클릭하면 메이븐 기반의 프로젝트를 다루는 작업이 만들어집니다.
<그림> 허드슨 새 작업 만들기


바로 설정(Configure) 화면이 나타납니다. 많은 설정 항목이 있지만 처음이기 때문에 간단히 핵심적인 것만 설정하겠습니다. 소스 프로젝트가 담겨 있는 서브버전과 연결이 시작입니다. Source Code Configuration 섹션의 Subversion을 선택합니다. 서브버전의 주소에 프로젝트 경로까지 추가합니다. svn://localhost/svn/trunk/ok.egov 주소를 입력합니다.

<그림> 허드슨 작업 설정




허드슨 설정 페이지의 제일 하단에 있는 Save 버튼을 클릭하면 저장됩니다.

<그림> 허드슨 작업 설정 저장



프로젝트 페이지에서는 프로젝트의 전체적인 현황이 보입니다. 좌측에 있는 메뉴들을 통해서 설정을 변경하거나 빌드하거나 프로젝트 소스를 조회하거나, 변경 이력 등을 살펴 볼 수 있습니다.


<그림> 허드슨 프로젝트 페이지

Posted by 케누 kenu허광남

댓글을 달아 주세요