슬라이드 1
|
|
- 민자 부
- 6 years ago
- Views:
Transcription
1 - 1 - 전자정부개발프레임워크실행환경
2 5. 업무처리레이어 1. 개요 2. Process Control 3. Exception Handling - 2 -
3 1. 개요 - 실행환경업무처리레이어 (1/3) 5. 업무처리레이어 업무처리레이어는업무프로그램의업무로직을담당하는 Layer 로서, 업무흐름제어, 에러처리등 의기능을제공함 전자정부개발프레임워크실행환경 서비스그룹 Presentation Layer 설명 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 Layer Presentation Layer Logic Business Layer Persistence Integration Layer Business Logic Layer 업무프로그램의업무로직을담당하는 Layer 로서, 업무흐름제어, 에러처리등의기능을제공함 Persistence Layer 데이터베이스에대한연결및영속성처리, 선언적인트랜잭션관리를제공하는 Layer 임 Foundation Layer ( 공통기반레이어 ) Integration Layer 타시스템과의연동기능을제공하는 Layer 임 환경 서비스그룹 Foundation Layer ( 공통기반레이어 ) 실행환경의각 Layer 에서공통적으로사용하는공통기능을제공함 - 3 -
4 1. 개요 - 실행환경업무처리레이어 (2/3) 5. 업무처리레이어 업무처리레이어는 Process Control, Exception Handling 등총 2 개의서비스를제공함 실행환경 화면처리레이어 업무처리레이어 데이터처리레이어 연계통합레이어 MVC Internationalization Process Control DataSource Data Access Naming Service Ajax Support Security Exception Handling ORM TBD Transaction Integration Service UI Adaptor Web Service 공통기반레이어 AOP Cache Compress/Decompress Encryption/Decryption Excel File Handling File Upload/Download FTP Server Security ID Generation IoC Container Logging Mail Marshalling/Unmarshalling Object Pooling Property Resource Scheduling String Util XML Manipulation 실행환경서비스그룹서비스 - 4 -
5 1. 개요 - 실행환경업무처리레이어 (3/3) 5. 업무처리레이어 업무처리레이어는 Spring Web Flow, Spring 등총 2 개의오픈소스 SW 를사용하고있음 서비스오픈소스 SW 버전 Process Control Web Flow 2.0 Exception Handling Spring
6 2. Process Control 개요 5. 업무처리레이어 서비스개요 Spring Web Flow(SWF) 는웹애플리케이션내페이지흐름 (flow) 의정의와수행에집중하는 Spring프레임워크웹스택의컴포넌트이다. Spring Web Flow는추상화의좀더높은레벨에존재하고 Struts, Spring MVC, Portlet MVC, 그리고 JSF와같은기본프레임워크내에서자족적인페이지흐름 (flow) 엔진 (page flow engine) 처럼통합된다. SWF는선언적이고높은이식성을가지며뛰어난관리능력을가지는형태로명시적으로애플리케이션의페이지흐름 (flow) 을획득하는기능을제공한다
7 2. Process Control - 설명 (1/9) 5. 업무처리레이어 Getting Started - Hello 프로젝트 화면시나리오
8 LAB 303-swf Demo Lab303-swf - 8 -
9 2. Process Control - 설명 (2/9) 5. 업무처리레이어 1 번 Hello 시나리오 Flow 정의 <?xml version="1.0" encoding="utf-8"?> <flow xmlns=" xmlns:xsi=" xsi:schemalocation=" </flow> <view-state id="hello"> <transition on="say" to="helloworld" /> </view-state> <view-state id="helloworld"> <transition on="return" to="return" /> </view-state> <end-state id="return" view="externalredirect:servletrelative:/start" /> - 9 -
10 2. Process Control - 설명 (3/9) 5. 업무처리레이어 2 번 Hello 시나리오 Flow 정의 <?xml version="1.0" encoding="utf-8"?> <flow xmlns=" xmlns:xsi=" xsi:schemalocation=" <on-start> <evaluate expression="helloservice.saymessage()" result="flowscope.message" /> </on-start> <view-state id="hello2" model="message"> <binder> <binding property="str" required="true" /> </binder> <transition on="proceed" to="actionhello" /> <transition on="return" to="return" /> </view-state> <action-state id="actionhello"> <evaluate expression="helloservice.addhello(message)" /> <transition on="yes" to="moredecision" /> <transition on="no" to="hello" /> </action-state> <decision-state id="moredecision"> <if test="helloservice.getdecision(message)" then="helloworld2" else="return" /> </decision-state> <view-state id="helloworld2"> <transition on="return" to="return" /> </view-state> <end-state id="return" view="externalredirect:servletrelative:/start" /> </flow>
11 2. Process Control - 설명 (4/9) 5. 업무처리레이어 Flow Definition <?xml version="1.0" encoding="utf-8"?> <flow xmlns=" xmlns:xsi=" xsi:schemalocation=" </flow> <view-state id="hello"> <transition on="say" to="helloworld" /> </view-state> <view-state id="helloworld"> <transition on="return" to="return" /> </view-state> <end-state id="return" view="externalredirect:servletrelative:/start" /> view-state: Flow 중화면을보여주는 State 를정의하는구성요소 편의상 Flow 정의파일이있는디렉터리내에서 view-state id 와일치하는화면템플릿을맞추어보여주게된다. transition: State 내에서발생한이벤트를제어하는구성요소. 화면이동을일으킨다. end-state: Flow의결과를정의
12 2. Process Control - 설명 (5/9) 5. 업무처리레이어 decision state action-state 를대신해서편리하게 if/else 문법을사용해서이동하고자하는의사결정을해주는 decision-state 를사용한다. <decision-state id="moredecision"> <if test="helloservice.getdecision(message)" then="helloworld2" else="return" /> </decision-state> action-state 액션은대부분 POJO 의메소드를호출한다. action-state 와 decision-state 을호출했을때, 이들메소드가반환하는값은상태를전이하게해주는데사용할수있다. 전이가이벤트에의해서발생되기때문에, 우선메소드가반환하는값은반드시 Event 객체에매핑되야한다. <action-state id="actionhello"> <evaluate expression="helloservice.addhello(message)" /> <transition on="yes" to="moredecision" /> <transition on="no" to="hello" /> </action-state>
13 2. Process Control - 설명 (6/9) 5. 업무처리레이어 환경설정 with Spring MVC
14 2. Process Control - 설명 (7/9) 5. 업무처리레이어 webmvc-config.xml
15 2. Process Control - 설명 (8/9) 5. 업무처리레이어 webflow-config.xml
16 2. Process Control - 설명 (9/9) 5. 업무처리레이어 화면 <%@ taglib prefix="form" uri=" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html> <head> <title>welcome to Spring Web Flow</title> </head> <body> <h1>welcome to Spring Web Flow</h1> <form:form id="start"> <input type="submit" name="_eventid_say" value="click to say hello!" /> </form:form> </body> </html> <view-state id="hello"> <transition on="say" to="helloworld" /> </view-state> <view-state id="helloworld"> <transition on="return" to="return" /> </view-state> transition 은화면에서발생한이벤트와매핑을할까? hello.jsp 소스를잠시보겠다. 코드에서보는봐와같이 form으로둘러싸인곳에해답은있다. <input type= submit name= _eventid_say. /> 에서 name 을보면 _eventid_say 로답을찾을수있다. _eventid 가답이다. say는 transition 의 on 과같음을확인할수있다. eventid 에정의된특정위치의문자열을가지고 transition 를분석한다. transition 에대한내용은 flow 정의에서자세히살펴보길바란다. eventid 가 say 를가지고 form 이전달되면 flow 정의에따라 transition 을찾고그에맞는 state 로넘어가게된다. 결과는별도의값을가지고보여주는화면이아닌단지아래와같은화면을보여주도록되어있다
17 2. Process Control - 참고자료 5. 업무처리레이어 The Spring Framework - Reference Documentation
18 3. Exception Handling - 개요 5. 업무처리레이어 서비스개요 전자정부표준프레임워크기반의시스템개발시 Exception 처리, 정확히는 Exception 별특정로직을흐를수있도록하여 Exception 에따른적절한대응이가능도록하고자하는데목적이있다. AOP 의 After throwing advice 로정의된다. 전자정부표준프레임워크기반의처리되는 Exception 은현재 EgovBizException, DataAccessException, FdlException, 그외나머지로구분되어제공한다. 샘플코드 : processexception ( 메시지키 ) 를던지는형태이다. Exception 을던지지않고 Exception 후처리로직처럼수행후계속비즈니스로돌아오는방법도필요 LeaveaTrace
19 3. Exception Handling - 설명 (1/11) 5. 업무처리레이어 Exception EgovBizException 은 Biz flow 상에 Biz Exception.( 사용자에의해발생시키는 Exception ) DataAccessException 의경우는 Spring 에서 persistence layer 에서발생하는 Exception. FdlException 은전자정부표준프레임워크에서확장 / 추가된영역에서던져주는 Exception. 그외나머지는앞에서나열한 Exception 을제외한 Exception Exception 후처리흐름 Exception 후처리방식은 AOP(pointCut after-throw) ExceptionTransfer.transfer() ExceptionHandlerService Handler 순으로실행된다
20 3. Exception Handling - 설명 (2/11) 5. 업무처리레이어 ServiceImpl 클래스개발 업무로직이담기는 ServiceImpl 클래스는아래와같이 AbstractServiceImpl public class CategoryServiceImpl extends AbstractServiceImpl implements CategoryService { AbstractServiceImpl 클래스는추상클래스로 processexception 메소드를하위클래스에서사용할수있도록 해준다. public abstract class AbstractServiceImpl = "messagesource") private MessageSource = "leaveatrace") private LeaveaTrace traceobj; protected EgovBizException processexception(final String msgkey) { return processexception(msgkey, new String[] {); protected EgovBizException processexception(final String msgkey, final String[] msgargs) { return processexception(msgkey, msgargs, null);
21 3. Exception Handling - 설명 (3/11) 5. 업무처리레이어 egov Exception Handling 설정및설명 ServiceImpl 업무클래스에서발생한 Exception 은아래설정에따라 ExceptionTransfer.transfer(..) 로위임된다. Aop Config : Bean 설정 (after-throwing Advice ) <aop:config> <aop:pointcut id="servicemethod" expression="execution(* egov.sample.service.*impl.*(..))" /> <aop:aspect ref="exceptiontransfer"> <aop:after-throwing throwing="exception" pointcut-ref="servicemethod" method="transfer" /> </aop:aspect> </aop:config> <bean id="exceptiontransfer class="egovframework.rte.fdl.cmmn.aspect.exceptiontransfer"> <property name="exceptionhandlerservice"> <list> <ref bean="defaultexceptionhandlemanager" /> </list> </property> </bean> AspectJ req expression (pointcut) 해당되는클래스상에 Exception 발생시 ExceptionTransfer 클래스로위임. 실제로직은 transfer 메소드에구현을하고있음
22 3. Exception Handling - 설명 (4/11) 5. 업무처리레이어 ExceptionTransfer : Exception 종류에따라구분하고있다. public class ExceptionTransfer { public void transfer(joinpoint thisjoinpoint, Exception exception) throws Exception { // BizException 인경우는이미메시지처리되었음. 로그만기록 if (exception instanceof EgovBizException) { EgovBizException be = (EgovBizException) exception; getlog(clazz).error(be.getmessage(), be.getcause()); // Exception Handler 에발생된 Package 와 Exception 설정. processhandling(clazz, exception, pm, exceptionhandlerservices, false); throw be; else if (exception instanceof RuntimeException) { // Exception Handler 에발생된 Package 와 Exception 설정. processhandling(clazz, exception, pm, exceptionhandlerservices, true); if (be instanceof DataAccessException) { log.debug("runtimeexception case :: DataAccessException "); DataAccessException sqlex = (DataAccessException) be; throw sqlex; throw be; AspectJ req expression (pointcut) 해당되는클래스상에 Exception 발생시 ExceptionTransfer 클래스로위임. else if (exception instanceof FdlException) { FdlException fe = (FdlException) exception; getlog(clazz).error(fe.getmessage(), fe.getcause()); 실로직은 transfer 메소드에구현을하고있음. throw fe; else { getlog(clazz).error(exception.getmessage(), exception.getcause()); throw processexception(clazz, "fail.common.msg", new String[] {, exception, locale);
23 3. Exception Handling - 설명 (5/11) 5. 업무처리레이어 ExceptionHandleManager : Exception 발생클래스와등록된 Handlers 사이의매핑을해주는역할수행 <bean id="exceptiontransfer class="egovframework.rte.fdl.cmmn.aspect.exceptiontransfer"> <property name="exceptionhandlerservice"> <list> <ref bean="defaultexceptionhandlemanager" /> </list> </property> </bean> <bean id="defaultexceptionhandlemanager" class="egovframework.rte.fdl.cmmn.exception.manager.defaultexceptionhandlemanager"> <property name="patterns"> <list> <value>**service.*impl.methodname</value> </list> </property> <property name="handlers"> <list> <ref bean="egovhandler" /> </list> </property> </bean> 여기서는발생한 Exception 이 **service.*impl.methodname 조건에맞는경우 egovhandler 를실행시킨다. Patterns 나 handlers 는여러개를등록할수있다
24 3. Exception Handling - 설명 (6/11) 5. 업무처리레이어 ExceptionHandleManager 구현체는 AbsExceptionHandleManager 를상속해야하며 ExceptionHandlerService 를인터 페이스로취해야한다. 실제구현메소드는 run (..) 이다. public class DefaultExceptionHandleManager extends AbsExceptionHandleManager implements ExceptionHandlerService public boolean run(exception exception) throws Exception { log.debug(" DefaultExceptionHandleManager.run() "); // 매칭조건이 false 인경우 if (!enablematcher()) return false; for (String pattern : patterns) { log.debug("pattern = " + pattern + ", thispackagename = " + thispackagename); log.debug("pm.match(pattern, thispackagename) =" + pm.match(pattern, thispackagename)); if (pm.match(pattern, thispackagename)) { for (ExceptionHandler eh : handlers) { eh.occur(exception, getpackagename()); break; return true;
25 3. Exception Handling - 설명 (7/11) 5. 업무처리레이어 EgovServiceExceptionHandler ( 샘플 ) Handler 를간단하게구현한예이다. 발생한 Exception 을메일로발송하고있다. public class EgovServiceExceptionHandler implements ExceptionHandler = "othersslmailsender") private SimpleSSLMail mailsender; public void occur(exception ex, String packagename) { log.debug(" EgovServiceExceptionHandler run..."); try { mailsender.send(ex, packagename); log.debug(" sending a alert mail is completed "); catch (Exception e) { // TODO Auto-generated catch block e.printstacktrace(); ExceptionHander 인터페이스를구현하여 Bean 설정에넣어주기만하면된다. <bean id="defaultexceptionhandlemanager" class="egovframework.rte.fdl.cmmn.exception.manager.defaultexceptionhandlemanager"> <property name="patterns"> <list> <value>**service.*impl</value> </list> </property> <property name="handlers"> <list> <ref bean="egovhandler" /> </list> </property> </bean> <bean id="egovhandler class="egovframework.rte.fdl.cmmn.exception.handler.egovserviceexceptionhandler" />
26 3. Exception Handling - 설명 (8/11) 5. 업무처리레이어 LeavaTrace 설정및설명 Exception 이거나 Exception 이아닌경우에도 Trace 후처리로직을실행시키고자할때사용한다. 실제 Exception 이발생하지는않고후처리로직만흐른다. 구현 / 적용방식은 Exception 후처리로직과유사하다. <bean id="leaveatrace" class="egovframework.rte.fdl.cmmn.trace.leaveatrace"> <property name="tracehandlerservices"> <list> <ref bean="tracehandlerservice" /> </list> </property> </bean> <bean id="tracehandlerservice" class="egovframework.rte.fdl.cmmn.trace.manager.defaulttracehandlemanager"> <property name="patterns"> <list> <value>*</value> </list> </property> <property name="handlers"> <list> <ref bean="defaulttracehandler" /> </list> </property> </bean> <bean id="defaulttracehandler" class="egovframework.rte.fdl.cmmn.trace.handler.defaulttracehandler" />
27 3. Exception Handling - 설명 (9/11) 5. 업무처리레이어 TraceHandler 구현체만들기 public class DefaultTraceHandler implements TraceHandler { public void todo(class clazz, String message) { System.out.println(" log ==> DefaultTraceHandler run..."); leaveatrace 코드상발생 Sample public CategoryVO selectcategory(categoryvo vo) throws Exception { CategoryVO resultvo = categorydao.selectcategory(vo); try { // 강제로발생한 ArithmeticException int i = 1 / 0; catch (ArithmeticException athex) { //Exception 을발생하지않고후처리로직실행. leaveatrace("message.trace.msg"); return resultvo;
28 3. Exception Handling - 설명 (10/11) 5. 업무처리레이어 Exception 화면 Handling 화면단의 Exception 처리는 Controller 로전달된 Excpetion에따른지정된에러화면이동으로이루어져있다. Controller 인터페이스의 handlerequest() 메소드는 Excetpion 을발생하도록정의되어있다. DispathcherServlet 은 HandlerExceptionResolver가등록되어있는경우에는 Exception이발생하는경우 HandlerExceptionResolver에게위임한다. HandlerExceptionResolver는아래와같은인터페이스이다
29 3. Exception Handling - 설명 (11/11) 5. 업무처리레이어 Bean Configuration <bean class="org.springframework.web.servlet.handler.simplemappingexceptionresolver"> <property name="defaulterrorview" value="exception/commoncaseexception"/> <property name="exceptionmappings"> <props> <prop key="org.egovframe.exception.acaseexception">exception/acaseexception</prop> <prop key="org.egovframe.exception.bcaseexception">exception/bcaseexception</prop> </props> </property> </bean> 발생한 Exception 의종류를 ACaseException, BCaseException, 기타 Exception 이발생하는경우 ACaseException 은 exceptionmapping 규칙에서보이는것처럼해당 Exception 과매핑된 excpetion/acaseexcetpion 을결과값을가져오게된다. BCaseException 의경우도마찬가지다. 가져온값은 ViewResolver에의해해당화면으로이동을하게된다. 그리고 excpetionmappings 에서정의되지않은 Exception 인경우 defaulterrorview 에매핑된 exception/commoncaseexceptio 을리턴하게된다. 결과적으로보면발생한 Exception 에대한별도의정의를하지않는다면 defaulterrorview 에지정된값의화면으로이동하게된다는것이다
30 3. Exception Handling 참고자료 5. 업무처리레이어 The Spring Framework - Reference Documentation
31 1. 개요 - 실행환경연계통합레이어 (1/3) 연계통합레이어는타시스템과의연동기능을제공하는 Layer 임 전자정부개발프레임워크실행환경 서비스그룹 Presentation Layer 설명 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 Layer Presentation Layer Logic Business Layer Persistence Integration Layer Business Logic Layer 업무프로그램의업무로직을담당하는 Layer 로서, 업무흐름제어, 에러처리등의기능을제공함 Persistence Layer 데이터베이스에대한연결및영속성처리, 선언적인트랜잭션관리를제공하는 Layer 임 Foundation Layer ( 공통기반레이어 ) Integration Layer 타시스템과의연동기능을제공하는 Layer 임 환경 서비스그룹 Foundation Layer ( 공통기반레이어 ) 실행환경의각 Layer 에서공통적으로사용하는공통기능을제공함
32 1. 개요 - 실행환경연계통합레이어 (2/3) 연계통합레이어는 Naming Service, Integration Service, Web Service 등총 3 개의서비스를제 공함 실행환경 화면처리레이어 업무처리레이어 데이터처리레이어 연계통합레이어 MVC Internationalization Process Control DataSource Data Access Naming Service Ajax Support Security Exception Handling ORM TBD Transaction Integration Service UI Adaptor Web Service 공통기반레이어 AOP Cache Compress/Decompress Encryption/Decryption Excel File Handling File Upload/Download FTP Server Security ID Generation IoC Container Logging Mail Marshalling/Unmarshalling Object Pooling Property Resource Scheduling String Util XML Manipulation 실행환경서비스그룹서비스
33 1. 개요 - 실행환경연계통합레이어 (3/3) 연계통합레이어는 Naming Service, Web Service 등총 2 종의오픈소스 SW 를사용하고있음 서비스오픈소스 SW 버전 Naming Service Spring Web Service Apache CXF
34 2. Naming Service 개요 (1/3) 서비스개요 원격에있는모듈및자원등을찾아주는서비스 Naming 서비스를지원하는 Naming 서버에자원을등록하여다른어플리케이션에서사용할수있도록공개하고, Naming 서버에등록되어있는자원을찾아와서이용할수있게함
35 2. Naming Service 개요 (2/3) 주요기능 자원등록 (bind, rebind) Naming 서버에로컬에있는자원을등록함 자원검색 (lookup) Naming 서버에등록되어있는자원을이름을이용하여조회함 자원등록해제 (unbind) Naming 서버에등록되어있는로컬자원에대한등록을해제함 Open Source Spring Framework : Naming Service는 Spring Framework에서제공하는기능을수정없이사용함 jee:jndi-lookup tag : Spring XML Configuration 설정파일에 JNDI 객체를 bean으로등록하는방식으로, JNDI 객체를 Lookup 만할수있다. 일반적으로가장많이사용된다. JndiTemplet 클래스 : Spring Framework에서 JNDI API를쉽게사용할수있도록제공하는 JndiTemplate class를직접사용하는방식으로, JNDI API 기능을모두사용해야할경우사용하는방식이다
36 2. Naming Service 개요 (3/3) Java Naming and Directory Interface(JNDI) 란 Java Naming and Directory Interface(JNDI) 는 Java 소프트웨어클라이언트가이름 (name) 을이용하여데이터 및객체를찾을수있도록도와주는네이밍 / 디렉토리서비스에연결하기위한 Java API 이다
37 2. Naming Service Spring XML Configuration 설정 (1/4) 개요 Spring Framework는 XML Configuration 파일에 JNDI 객체를설정할수있다. 단, 설정파일을통해서는 JNDI 객체를 lookup하는것만가능하므로, bind, rebind, unbind 기능을사용하려면 Using JndiTemplate 방식을사용해야한다. 설정 jee tag 를사용하기위해서는 Spring XML Configuration 파일의머릿말에 namespace 와 schemalocation 를추 가해야한다. <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:xsi=" xmlns:jee=" xsi:schemalocation=" <!-- <bean/> definitions here --> </beans>
38 2. Naming Service Spring XML Configuration 설정 (2/4) jndi-lookup tag jndi-lookup tag 는 JNDI 객체를찾아서 bean 으로등록해주는 tag 이다. <jee:jndi-lookup id="bean id" jndi-name="jndi name cache="true or false resource-ref="true or false lookup-on-startup="true or false expected-type="java class proxy-interface="java class"> <jee:environment> name=value ping=pong... </jee:environment> </jee:jndi-lookup> JNDI Environment 변수값을등록할때사용한다. environment element 는 'foo=bar' 와같이 < 변수명 >=< 변수값 > 형태의 List 를값으로가진다. Attribute 설명 Optional Data Type Default값 id Spring XML Configuration의 bean id이다. N String jndi-name 찾고자하는 JNDI 객체의이름이다. N String cache 한번찾은 JNDI 객체에대한 cache여부를나타낸다. Y boolean true resource-ref J2EE Container 내에서찾을지여부를나타낸다. Y boolean false lookup-on-startup 시작시에 lookup을수행할지여부를타나낸다. Y boolean true expected-type 찾는 JNDI 객체를 assign할타입을나타낸다. Y Class proxy-interface JNDI 객체를사용하기위한 Proxy Interface이다. Y Class
39 2. Naming Service Spring XML Configuration 설정 (3/4) jndi-lookup tag Sample(2/2) With multiple JNDI environment settings 아래는복수 JNDI 환경설정을사용하여 JNDI 객체를찾아오는예제이다. <jee:jndi-lookup id="datasource" jndi-name="jdbc/mydatasource"> <!-- newline-separated, key-value pairs for the environment (standard Properties format) --> <jee:environment> foo=bar ping=pong </jee:environment> </jee:jndi-lookup> Complex 아래는이름외다양한설정을통해 JNDI 객체를찾아오는예제이다. <jee:jndi-lookup id="datasource jndi-name="jdbc/mydatasource" cache="true resource-ref="true lookup-on-startup="false" expected-type="com.myapp.defaultfoo proxy-interface="com.myapp.foo" />
40 2. Naming Service Spring XML Configuration 설정 (4/4) jndi-lookup tag Sample(1/2) Simple 가장단순한설정으로이름만을사용하여 JNDI 객체를찾아준다. 아래이름 jdbc/mydatasource 로등록되어 있는 JNDI 객체를찾아 userdao Bean 의 datasource property 로 Dependency Injection 하는예제이다. <jee:jndi-lookup id="datasource" jndi-name="jdbc/mydatasource" /> <bean id="userdao" class="com.foo.jdbcuserdao"> <!-- Spring will do the cast automatically (as usual) --> <property name="datasource" ref="datasource" /> </bean> With single JNDI environment settings 아래는단일 JNDI 환경설정을사용하여 JNDI 객체를찾아오는예제이다. <jee:jndi-lookup id="datasource" jndi-name="jdbc/mydatasource"> <jee:environment>foo=bar</jee:environment> </jee:jndi-lookup>
41 2. Naming Service JndiTemplate 클래스사용 (1/3) 개요 JndiTemplate class 는 JNDI API 를쉽게사용할수있도록제공하는 wrapper class 이다. Bind 아래 Jndi.TemplateSample class 의 bind 메소드는 JndiTemplate 을이용하여 argument 'resource' 를 argument 'name' 으로 JNDI 객체로 bind 한다. import javax.naming.namingexception; import org.springframework.jndi.jnditemplate; public class JndiTemplateSample { private JndiTemplate jnditemplate = new JndiTemplate(); public boolean bind(final String name, Object resource) { try { jnditemplate.bind(name, resource); return true; catch (NamingException e) { e.printstacktrace(); return false;
42 2. Naming Service JndiTemplate 클래스사용 (2/3) Lookup JndiTemplate 을이용하여 argument 'name' 으로등록되어있는자원 (resource) 를찾을수있다. public Object lookupresource(final String name) { try { return jnditemplate.lookup(name); catch (NamingException e) { e.printstacktrace(); return null; Lookup with requiredtype JndiTemplate 의 lookup 메소드는찾고자하는자원의이름뿐아니라원하는타입 (Type) 을지정할수있다. public Foo lookupfoo(final String fooname) { try { return jnditemplate.lookup(fooname, Foo.class); catch (NamingException e) { e.printstacktrace(); return null;
43 2. Naming Service JndiTemplate 클래스사용 (3/3) Rebind JndiTemplate 의 rebind 메소드를사용하여자원을재등록할수있다. Unbind public boolean rebind(final String name, Object resource) { try { jnditemplate.rebind(name, resource); return true; catch (NamingException e) { e.printstacktrace(); return false; JndiTemplate 의 unbind 메소드를사용하여등록된자원을등록해제할수있다. public boolean unbind(final String name) { try { jnditemplate.unbind(name); return true; catch (NamingException e) { e.printstacktrace(); return false;
44 2. Naming Service 참고자료 Spring Framework JndiTemplate class API The Spring Framework - Reference Documentation A.2.3. The jee schema Java SE Guide to JNDI
45 3. Integration Service 개요 (1/2) 서비스개요 Integration 서비스는전자정부표준프레임워크기반의시스템이타시스템과의연계를위해사용하는 Interface 의표준을정의한것이다
46 3. Integration Service 개요 (2/2) 목적 기존의전자정부시스템은타시스템과의연계를위해연계솔루션을사용하거나자체개발한연계모듈을사용해왔다. 기존에사용된연계솔루션및자체연계모듈은각각고유한설정및사용방식을가지고있어, 동일한연계서비스라할지라도사용하는연계모듈에따라각기다른방식으로코딩되어왔다. 본 Integration 서비스는이러한중복개발을없애고, 표준화된설정및사용방식을정의하여개발효율성을제고한다. 구성 Metadata 연계 Interface를사용하기위해필요한최소한의정보 ( 연계기관정보, 연계시스템정보, 연계서비스정보, 메시지형식등 ) 을정의하고있다. 연계서비스 API 연계서비스요청 Interface, 연계서비스제공 Interface, 연계메시지및메시지헤더등을정의하고있다
47 3. Integration Service Metadata(1/4) 논리모델 (1/2) 논리 ERD
48 3. Integration Service Metadata(2/4) 논리모델 (2/2) Entity 설명 Entity 기관시스템서비스연계등록정보레코드타입레코드필드 연계서비스를제공또는사용하는기관을나타낸다. 하나의기관은다수의시스템을가지고있다. 설명 연계서비스를제공또는사용하는시스템을나타낸다. 하나의시스템은반드시하나의기관에속하며, 다수의서비스를가지고있다. 연계서비스를제공하는단위를나타낸다. 하나의서비스는반드시하나의시스템에속한다. 연계서비스를사용하기위한단위를나타낸다. 연계요청시스템이연계제공서비스를사용하기위해서등록해야하는정보를담고있다. 연계에사용되는메시지의형태를나타낸다. <Key, Value> 쌍의정보를담고있는레코드형태의타입을정의하고있다. 하나의레코드타입은다수의레코드필드를가지고있다. 레코드타입에속하는내부필드의정의를나타낸다. 필드의이름과타입을정의한다. 하나의레코드필드는반드시하나의레코드타입에속한다
49 3. Integration Service Metadata(3/4) 물리모델 (1/2) 물리 ERD
50 3. Integration Service Metadata(4/4) 물리모델 (2/2) 물리ERD 설명 Integration 서비스 Metadata의물리모델은논리모델을실제물리적인 DB로구현하기위한모델로서, 물리ERD는 Oracle DB 를가정하여작성된것이다. 물리모델은 Hibernate 등과같은 Object Relational Mapping(ORM) 을사용하여 Access하는것을고려하여, 복수의 Attribute 를 Identifier로갖는 Entity를 Table로변환할때 Surrogate Key를도입하고, 기존 Identifier는 Unique Constraints로적용하여정의되었다. Entity Table 매핑 Entity 기관시스템서비스연계등록정보레코드타입레코드필드 Table ORGANIZATION SYSTEM SERVICE INTEGRATION RECORD_TYPE RECORD_TYPE_FIELD
51 3. Integration Service 연계서비스 API(1/15) 구성 (1/2) Class Diagram
52 3. Integration Service 연계서비스 API(2/15) 구성 (2/2) 구성요소설명 구성요소 설명 EgovIntegrationContext 연계서비스에대한설정및 EgovIntegrationService 객체를관리한다. EgovIntegrationMessage 연계서비스를통해주고받는표준메시지를정의한다. EgovIntegrationMessageHeader 연계서비스를통해주고받는표준메시지헤더를정의한다. EgovIntegrationMessageHeader:ResultCode 연계서비스결과코드를담고있는 enumeration이다. EgovIntegrationService 연계서비스를호출하기위해사용한다. EgovIntegrationServiceResponse 연계서비스를비동기방식으로호출한경우, 응답메시지를받기위해사용한다. EgovIntegrationServiceCallback 연계서비스를비동기방식으로호출한경우, 응답메시지를받기위한 Callback interface이다. EgovIntegrationServiceCallback:CallbackId 연계서비스를 Callback 을이용한비동기방식으로호출한경우, 요청메시지와응답메시지를연결하기위한 ID 를나타내는 interface 이다. EgovIntegrationServiceProvider 연계서비스를제공하기위해사용한다
53 3. Integration Service 연계서비스 API(3/15) EgovIntegrationContext EgovIntegrationContext는연계서비스에대한설정및 EgovIntegrationService 객체를관리한다. 연계서비스를사용하기위해서는 EgovIntegrationContext의 getservice 메소드를사용하여 EgovIntegrationService 객체를얻어와야한다. 아래는이름과주민번호를이용하여실명확인연계서비스를요청하는예제이다. public boolean verifyname(final String name, final String residentregistrationnumber) { // 연계 ID 가 "INT_VERIFY_NAME" 인연계서비스객체를얻어온다. EgovIntegrationService service = egovintegrationcontext.getservice("int_verify_name"); // 요청메시지생성 EgovIntegrationMessage requestmessage = service.createrequestmessage(); // 요청메시지작성 requestmessage.getbody().put("name", name); requestmessage.getbody().put("residentregistrationnumber", residentregistrationnumber); // 서비스요청 EgovIntegrationMessage responsemessage = service.sendsync(requestmessage); // 결과 return return responsemessage.getbody().get("result");
54 3. Integration Service 연계서비스 API(4/15) EgovIntegrationMessage(1/2) EgovIntegrationMessage는헤더부, 바디부, 첨부파일로구성된다. 헤더부 헤더부를 access 하기위한메소드는아래와같다. Method Summary EgovIntegrationMessageHeader void getheader() setheader(egovintegrationmessageheader header) 바디부 바디부를 access 하기위한메소드는아래와같다. Method Summary Map<String, Object> void getbody() setbody(map<string, Object> body) 바디부는다음값들로만구성될수있다. Java Primitive Type의 Wrapper 객체 (Boolean, Byte, Short, Integer, Long, Float, Double) BigInteger, BigDecimal String Calendar List<Object>, Map<String, Object> (* List와 Map의 element 역시위값들로구성되어야한다.)
55 3. Integration Service 연계서비스 API(5/15) EgovIntegrationMessage(2/2) 첨부파일 첨부파일을 access 하기위한메소드는아래와같다. Method Summary Map<String, Object> void Object void Object getattachments() setattachments(map<string, Object> attachments) getattachment(string name) putattachment(string name, Object attachment) removeattachment(string name)
56 3. Integration Service 연계서비스 API(6/15) EgovIntegrationMessageHeader EgovIntegrationMessageHeader는다음과같은정보를담고있다. Attribute Name Data Type 설명 IntegrationId String 연계ID ProviderOrganizationId String 연계제공기관ID ProviderSystemId String 연계제공시스템ID ProviderServiceId String 연계제공서비스ID ConsumerOrganizationId String 연계요청기관ID ConsumerSystemId String 연계요청시스템ID RequestSendTime Calendar 요청송신시각 RequestReceiveTime Calendar 요청수신시각 ResponseSendTime Calendar 응답송신시각 ResponseReceiveTime Calendar 응답수신시각 ResultCode ResultCode 결과코드 ResultMessage String 결과메시지 EgovIntegrationMessageHeader 는위 attribute 들에대한 get/set 메소드를정의하고있다
57 3. Integration Service 연계서비스 API(7/15) EgovIntegrationService(1/8) EgovIntegrationService는동기화방식의호출과비동기화방식의호출을지원한다. 동기화방식 (1/2) Sequence Diagram
58 3. Integration Service 연계서비스 API(8/15) EgovIntegrationService(2/8) 동기화방식 (2/2) Timeout 을지정한예제 public boolean verifyname(final String name, final String residentregistrationnumber) { // EgovIntegrationContext 에서 EgovIntegrationService 객채를얻어온후, 요청메시지를 // 생성및작성한다.... // 동기방식으로연계서비스호출 (timeout = 5000 millisecond) EgovIntegrationMessage responsemessage = service.sendsync(requestmessage, 5000); // 응답결과처리... Timeout 을설정하지않은예제 ( 이경우 default timeout 값을사용한다 ) EgovIntegrationMessage responsemessage = servicd.sendsync(requestmessage);
59 3. Integration Service 연계서비스 API(9/15) EgovIntegrationService(3/8) 비동기화방식개요 EgovIntegrationService의 sendasync 메소드는비동기화방식으로연계서비스를호출한다. sendasync 메소드는 Response 방식과 Callback 방식으로두가지방식이존재한다. Response를사용한비동기방식 : EgovIntegrationServiceResponse를이용한비동기호출방식이다. Response 방식의비동기호출은연계서비스를요청하는업무모듈의응답에대한 ownership를가지고있으며, 응답결과를스스로처리해야하는경우사용한다. Callback을사용한비동기방식 : EgovIntegrationServiceCallback을이용한비동기호출방식이다. Callback 방식의비동기호출에서연계서비스를요청하는업무모듈은단지요청만을수행하고, 응답에대한처리는 Callback 객체에게위임해도상관없는경우사용한다
60 3. Integration Service 연계서비스 API(10/15) EgovIntegrationService(4/8) Response를사용한비동기방식 (1/2) EgovIntegrationServiceResponse를이용한비동기호출방식이다. Response 방식의비동기호출은연계서비스를요청하는업무모듈의응답에대한 ownership를가지고있으며, 응답결과를스스로처리해야하는경우사용한다. Sequence Diagram
61 3. Integration Service 연계서비스 API(11/15) EgovIntegrationService(5/8) Response 를사용한비동기방식 (2/2) Timeout 을지정한예제 public boolean verifyname(final String name, final String residentregistrationnumber) { // EgovIntegrationContext 에서 EgovIntegrationService 객채를얻어온후, 요청메시지를 // 생성및작성한다.... // 비동기방식으로연계서비스호출 EgovIntegrationServiceResponse response = service.sendasync(requestmessage); // response 객체를이용하여응답메시지를받기전에필요한업무를수행... // response 객체를이용하여응답메시지수신 (timeout = 5000 millisecond) EgovIntegrationMessage responsemessage = response.receive(5000); // 응답메시지처리... Timeout 을지정하지않은예제 ( 이경우 default timeout 값을사용한다 ) EgovIntegrationMessage responsemessage = response.receive();
62 3. Integration Service 연계서비스 API(12/15) EgovIntegrationService(6/8) Callback을사용한비동기방식 (1/3) EgovIntegrationServiceCallback을이용한비동기호출방식이다. Callback 방식의비동기호출은연계서비스를요청하는업무모듈은단지요청만을수행하고, 응답에대한처리는 Callback 객체에게위임해도상관없는경우사용한다. Sequence Diagram
63 3. Integration Service 연계서비스 API(13/15) EgovIntegrationService(7/8) Callback 을사용한비동기방식 (2/3) 예제 (1/2) 아래는 Callback = "verifynameservicecallback") private EgovIntegrationServiceCallback callback; public boolean verifyname(final String name, final String residentregistrationnumber) { // EgovIntegrationContext 에서 EgovIntegrationService 객채를얻어온후, 요청메시지를 // 생성및작성한다.... // 비동기방식으로연계서비스호출 service.sendsync(requestmessage, callback);
64 3. Integration Service 연계서비스 API(14/15) EgovIntegrationService(8/8) Callback 을사용한비동기방식 (3/3) 예제 (2/2) 아래는 Callback 모듈예제이다. public class VefiryNameServiceCallback { public CallbackId createid(egovintegrationservice service, EgovIntegrationMessage requestmessage) { // 본메소드는 EgovIntegrationService 를구현한연계 Adaptor 또는솔루션에서불리워진다. // 서비스와요청메시지를이용하여 CallbackId 를생성하여 return 한다. // 생성한 CallbackId 는응답메시지수신시, 해당하는서비스및요청메시지를식별하기위해 // 사용한다. // CallbackId 생성 CallbackId callbadkid =... return callbackid; public vod onreceive(callbackid callbackid, EgovIntegrationMessage responsemessage) { // 본메소드는처리해야하는응답메시지가도착했을때, 연계 Adaptor 또는솔루션에의해 // 불리워진다. // 응답메시지처리
65 3. Integration Service 연계서비스 API(15/15) EgovIntegrationServiceProvider EgovIntegrationServiceProvider interface 는연계서비스를제공하기위한 interface 로연계서비스를제공하는 모듈은본 interface 를 implements 해야한다. 예제 package itl.sample; import egovframework.rte.itl.integration.egovintegrationmessage; import egovframework.rte.itl.integration.egovintegrationserviceprovider; public class ServiceVerifyName implements EgovIntegrationServiceProvider { public void service(egovintegrationmessage requestmessage, EgovIntegrationMessage responsemessage) { String name = requestmessage.getbody().get("name"); String residentregistrationnumber = requestmessage.getbody().get("residentregistrationnumber"); // 실명확인 boolean result = varifyname(name, residentregistrationnumber); responsemessage.getbody().put("result", result); <bean id="serviceverifyname" class="itl.sample.serviceverifyname"/>
66 4. WebService 개요 (1/4) 서비스개요 Integration Service 표준에따라작성된 Service 로, Web Service 를호출하고제공할수있도록지원한다
67 4. WebService 개요 (2/4) 주요기능 Web Service 호출 공개되어있는 Web Service 를호출하고, 처리결과를돌려준다. Web Service 공개 개발한업무모듈을 Web Service 로공개할수있도록 Proxy 등을제공하고, 완성된 Web Service 로공개한다. Open Source WebService는 Web Service를호출및제공하기위해서 Apache CXF를사용한다
68 4. WebService 개요 (3/4) Web Service란? W3C는 Web Service를 네트워크상에서발생하는컴퓨터간의상호작용을지원하기위한소프트웨어시스템 으로정의하고있다. 일반적으로 Web Service는인터넷과같은네트워크상에서접근되고, 요청된서비스를제공하는원격시스템에서수행되는 Web APIs이다
69 4. WebService 개요 (4/4) 문서구성 WebService는 Integration Service 표준에따라구현된서비스로서, Integration Service에서정의하고있는연계서비스 API를제공하고있다. 따라서본문서는 WebService를프로그램적으로호출하는방식이아닌, WebService를사용하기위한설정방법을중점적으로설명한다 ( 호출방식은 Integration Service의연계서비스 API를참조한다 ). 본문서의구성은아래와같다. Metadata 1. WebService 를사용하기위해필요한설정정보구조를설명한다. 설정방법 1. WebService 를사용하기위해필요한설정방법을설명한다. Client 모듈개발 1. WebService Client 모듈을개발하는방법을설명한다. Server 모듈개발 WebService Server 모듈을개발하는방법을설명한다
70 4. WebService Metadata(1/2) Metadata(1/2) 물리ERD WebService는 Integration Service 표준을따르므로 Integration Service의 Metadata와연동하여동작한다. ( 회색부분이 Integration Service의 Metadata이다 )
71 4. WebService Metadata(2/2) Metadata(2/2) Table 설명 Table 설명 WEB_SERVICE_SERVER 연계서비스를 Web Service 형태로공개 (publish) 하기위해필요한정보를담고있다. WEB_SERVICE_CLIENT Web Service 형태로공개 (publish) 되어있는연계서비스를호출하기위해필요한정보를담고있다. WEB_SERVICE_MAPPING 전자정부 Integration 서비스표준에따라개발된서비스가아닌기존의 Legacy 시스템의 Web Service 를호출하기위해, 표준메시지와 Web Service 메시지간의 mapping 정보를담고있다
72 4. WebService 설정방법 (1/3) 개요 WebService 를사용하기위해서는다음의설정이필요하다. pom.xml 파일에 dependency 설정추가 Spring XML Configuration 설정 pom.xml 파일에 dependency 설정추가 WebService 를사용하기위해서 pom.xml 의 dependencies tag 에다음 dependency 를추가한다. <version/> element 의값인 ${egovframework.versioin 에는사용할 egovframework 의 version 을기재한다. <dependency> <groupid>egovframework.rte</groupid> <artifactid>egovframework.rte.itl.webservice</artifactid> <version>${egovframework.version</version> </dependency>
73 4. WebService 설정방법 (2/3) Spring XML Configuration 설정 (1/2) WebService를위한기본적인설정이포함된 context-webservice.xml 파일을 Spring XML Configuration 파일에 import한다. <import resource="classpath:/egovframework/rte/itl/webservice/context/context-webservice.xml"/> 그리고 Context 와 DataSource 를등록해야한다.(DataSource 의경우, 프로젝트에서사용하는것이있을경우 설정하지않아도된다. 단, 반드시 id 가 datasource 이여야한다.) <!-- EgovWebServiceContext 이다. organizationid 와 systemid 는현재시스템의기관 ID 및시스템 ID 를넣어야한다. --> <bean id="egovwebservicecontext" class="egovframework.rte.itl.webservice.egovwebservicecontext" init-method="init"> <property name="organizationid" value="org_egov"/> <property name="systemid" value="sys00001"/> <property name="defaulttimeout" value="5000"/> <property name="integrationdefinitiondao" ref="integrationdefinitiondao"/> <property name="webserviceserverdefinitiondao" ref="webserviceserverdefinitiondao"/> <property name="webserviceclientdefinitiondao" ref="webserviceclientdefinitiondao"/> <property name="typeloader" ref="typeloader"/> <property name="classloader" ref="classloader"/> </bean> 이부분 ( 기관 ID, 시스템 ID, defaulttimeout) 만수정하면된다. 나머지 DAO 및 typeloader, classloader 는 context-webservice.xml 파일에정의되어있다
74 4. WebService 설정방법 (3/3) Spring XML Configuration 설정 (2/2) <!-- DataSource 설정이다. 시스템에맞게재작성해야한다. 아래는 HSQL Sample 이다. --> <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname" value="net.sf.log4jdbc.driverspy"/> <property name="url" value="jdbc:log4jdbc:hsqldb:hsql://localhost/test"/> <property name="username" value="sa"/> <property name="password" value=""/> <property name="defaultautocommit" value="false"/> <property name="poolpreparedstatements" value="true"/> </bean>
75 4. WebService Client 모듈개발 (1/2) 개요 Client 모듈을설정하기위해서는다음과정이필요하다. Metadata WEB_SERVICE_CLIENT에설정추가 (Optional) Metadata WEB_SERVICE_MAPPING에설정추가 Metadata WEB_SERVICE_CLIENT에설정추가 Client 모듈을설정하기위해서는 Metadata의 WEB_SERVICE_CLIENT Table에설정을추가해야한다. 다음과같이 Integration 서비스의 Metadata인 INTEGRATION Table에연계등록정보가설정되어있다고가정한다. ( 기관, 시스템, 서비스, 메시지타입등의정보는설정되어있으며, 개발하는시스템은 'SYSTEM_CONSUMER' 라고가정함 ) INTEGRATION ID PROVIDER_SERVICE_KEY CONSUMER_SYSTEM_KEY DEFAULT_TIMEOUT USING_YN VALIDATE_FROM VALIDATE_TO INT_VERIFY_NAME SERVICE_VERIFY_NAME SYSTEM_CONSUMER 5000 Y NULL NULL Web Service 'SERVICE_VERIFY_NAME' 를호출하기위해서 WEB_SERVICE_CLIENT에 'SERVICE_VERIFY_NAME' 을 SERVICE_KEY로갖는설정을추가해야한다. WEB_SERVICE_CLIENT SERVICE_KEY WSDL_ADDRESS NAMESPACE SERVICE_NAME PORT_NAME OPERATION_NAME SERVICE_VERIFY_NAME VerifyNameService VerifyNamePort service
76 4. WebService Client 모듈개발 (2/2) (Optional) Metadata WEB_SERVICE_MAPPING에설정추가 만약호출하는 Web Service가전자정부 Integration 서비스표준에따라개발된서비스가아닌경우, 메시지헤더부가다를수있어별도의 Mapping 정보가필요하다. 전자정부 Integration 서비스표준은 Web Service Header부에들어갈 Attribute들이 EgovIntegrationMessageHeader에정의되어있고, 바디부는 EgovIntegrationMessage의 body에정의되어있으므로별도의 mapping 정보없이 header와 body 부의구분이가능하지만, 표준을따르지않은 Web Service 의경우 EgovIntegrationMessage의 body부에정의되어있는일부값들을헤더에포함시켜야한다
77 4. WebService Server 모듈개발 (1/2) 개요 Web Service Server 모듈을개발하는과정은다음과같다. web.xml 파일에 EgovWebServiceServlet 추가 Metadata WEB_SERVICE_SERVER 설정추가 web.xml 파일에 EgovWebServiceServlet 추가 web.xml 에 EgovWebServiceServlet 설정을추가한다. <servlet> <description></description> <display-name>egovwebserviceservlet</display-name> <servlet-name>egovwebserviceservlet</servlet-name> <servlet-class>egovframework.rte.itl.webservice.egovwebserviceservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>egovwebserviceservlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> 개발한 Server 모듈을공개할 URL path 를설정한다. WEB_SERVICE_SERVER 의 ADDRESS 는이값에대한상대적인위치를나타낸다
78 4. WebService Server 모듈개발 (2/2) Metadata WEB_SERVICE_SERVER 설정추가 다음과깉이 Integration 서비스의 Metadata인 INTEGRATION Table에연계등록정보가설정되어있다고가정한다. ( 기관, 시스템, 서비스, 메시지타입등의정보는설정되어있으며, 공개할서비스는 'SERVICE_VERIFY_NAME' 이라고가정함 ) INTEGRATION ID PROVIDER_SERVICE_KEY CONSUMER_SYSTEM_KEY DEFAULT_TIMEOUT USING_YN VALIDATE_FROM VALIDATE_TO INT_VERIFY_NAME SERVICE_VERIFY_NAME SYSTEM_CONSUMER 5000 Y NULL NULL Web Service 'SERVICE_VERIFY_NAME' 를공개하기위해서 WEB_SERVICE_SERVER에 'SERVICE_VERIFY_NAME' 을 SERVICE_KEY로갖는설정을추가해야한다. WEB_SERVICE_SERVER SERVICE_KEY ADDRESS NAMESPACE SERVICE_NAME PORT_NAME OPERATION_NAME SERVICE_VERIFY_NAME /VerifyName VerifyNameService VerifyNamePort service <servlet-mapping> tag의 <url-pattern> tag의값은서비스를제공하기위한주소로, WEB_SERVICE_SERVER Table의 ADDRESS Column 값은 <url-pattern> tag값에대한상대위치를나타낸다. 예를들어, Web Application의 IP가 , Port가 8080, Context Root가 Sample, url-patterns이 /services/* 인경우, 위 'SERVICE_VERIFY_NAME' 의 WSDL Address는
슬라이드 1
1. 개요 - 실행환경연계통합레이어 (1/3) 연계통합레이어는타시스템과의연동기능을제공하는 Layer 임 전자정부개발프레임워크실행환경 서비스그룹 Presentation Layer 설명 업무프로그램과사용자간의 Interface 를담당하는 Layer 로서, 사용자화면구성, 사용자입력정보검증등의기능을제공함 Layer Presentation Layer Logic Business
More informationI T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache
More informationPowerPoint 프레젠테이션
@ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program
More informationIntro to Servlet, EJB, JSP, WS
! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g
More informationNo Slide Title
J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol
More information표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인
표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into
More informationPowerPoint 프레젠테이션
@ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field
More informationMicrosoft PowerPoint - 04-UDP Programming.ppt
Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여
More information슬라이드 1
7. [ 실습 ] 예제어플리케이션개발 1. 실습개요 2. 프로젝트환경구성 3. 기본환경설정 4. 예제어플리케이션개발 5. 참조 - 539 - 1. 실습개요 (1/4) 7. [ 실습 ] 예제어플리케이션개발 스프링기반의 EGOV 프레임워크를사용하여구현된예제어플리케이션구현을통하여 Presentation Layer와 Business Layer의연계를살펴본다. 예제어플리케이션구현기능
More informationEclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일
Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae
More informationKYO_SCCD.PDF
1. Servlets. 5 1 Servlet Model. 5 1.1 Http Method : HttpServlet abstract class. 5 1.2 Http Method. 5 1.3 Parameter, Header. 5 1.4 Response 6 1.5 Redirect 6 1.6 Three Web Scopes : Request, Session, Context
More informationSpring Boot/JDBC JdbcTemplate/CRUD 예제
Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.
More informationrmi_박준용_final.PDF
(RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:
More informationPowerPoint 프레젠테이션
@ Lesson 1,..... @ 1 Green Project 1991 Oak Java 1995. 5 December '90 by Patrick Naughton, Mike Sheridan and James Gosling Embedded in various consumer electronic device 1992. 9. 3 Star 7 1993 www portability
More informationInterstage5 SOAP서비스 설정 가이드
Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service
More information<property name="configlocation" value="classpath:/egovframework/sqlmap/example/sql-map-config.xml"/> <property name="datasource" ref="datasource2"/> *
표준프레임워크로구성된컨텐츠를솔루션에적용 1. sample( 게시판 ) 프로젝트생성 - egovframe Web Project next generate example finish 2. 프로젝트추가 - 프로젝트 Import 3. 프로젝트에 sample 프로젝트의컨텐츠를추가, 기능동작확인 ⓵ sample 프로젝트에서 프로젝트로복사 sample > egovframework
More informationJavaGeneralProgramming.PDF
, Java General Programming from Yongwoo s Park 1 , Java General Programming from Yongwoo s Park 2 , Java General Programming from Yongwoo s Park 3 < 1> (Java) ( 95/98/NT,, ) API , Java General Programming
More informationthesis
( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype
More information교육2 ? 그림
Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,
More informationMobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V
Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4
More informationJUNIT 실습및발표
JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected
More information어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More informationNetwork Programming
Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI
More informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More informationMicrosoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx
2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html
More information제11장 프로세스와 쓰레드
제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드
More informationMicrosoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx
(보험TM) 소개서 2015.12 대표전화 : 070 ) 7405 1700 팩스 : 02 ) 6012 1784 홈 페이지 : http://www.itfact.co.kr 목 차 01. Framework 02. Application 03. 회사 소개 01. Framework 1) Architecture Server Framework Client Framework
More informationWeb Service Computing
Spring MVC 2015 Web Service Computing Request & Response HTTP(Hyper-Text Transfer Protocol) 웹서버가하는일은요청 (Request) 과응답 (Response) 의연속이다. 1) 브라우저에 www.google.co.kr 을입력한다면 2) 구글서버에페이지를요청하는것이고 3) 화면이잘나타난다면구글서버가응답을한것이다.
More information신림프로그래머_클린코드.key
CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!
More informationPortal_9iAS.ppt [읽기 전용]
Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C
More information다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");
다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher
More informationCluster management software
자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException
More information슬라이드 1
UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)
More information혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가
혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationJMF3_심빈구.PDF
JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:
More informationAnalytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras
Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios
More information- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=
JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.
More informationPowerPoint Presentation
객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television
More information교육자료
THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성
More information02 C h a p t e r Java
02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER
More information1
1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2
More information제8장 자바 GUI 프로그래밍 II
제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로
More informationSpring Data JPA Many To Many 양방향 관계 예제
Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1
More informationJMF2_심빈구.PDF
JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet
More informationAPI STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum
API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date
More information슬라이드 1
NeoDeveloper 설치가이드 차례 1. 환경 3 2. 설치 3 2.1 웹서버설치 3 Tomcat 7 3 JDK 1.6 3 2.2 NeoDeveloper 설치 3 Neo Developer 서버구성 3 Demo용 User Application 구성 4 Neo Developer 서버 Data File 4 Client 개발 Tool 설치 4 3. 설정 5 3.1
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationPowerPoint 프레젠테이션
1. AOP - 개요 (1/7) 서비스개요 객체지향프로그래밍 (Object Oriented Programming) 을보완하는개념으로어플리케이션을객체지향적으로모듈화하여작성하더라도다수의객체들에분산되어중복적으로존재하는공통관심사가여전히존재한다. AOP는이를횡단관심으로분리하여핵심관심과엮어서처리할수있는방법을제공한다. 로깅, 보안, 트랜잭션등의공통적인기능의활용을기존의비즈니스로직에영향을주지않고모듈화처리를지원하는프로그래밍기법
More information<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>
Inside Spring Web MVC 안영회 ahnyounghoe@gmail.com 차례 MVC 개요와오해 Spring Web MVC 개요 Demo 로이해하는 Spring Web MVC 대표적인컨트롤러활용 정리 한국 스프링 사용자 모임 MVC 개요와 오해 한국 스프링 사용자 모임 MVC 개요 MVC 에대한오해 컨트롤러는서블릿이다! 컨트롤러는액션이다! 비즈니스로직은컨트롤러다!
More information09-interface.key
9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1
More information12-file.key
11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,
More informationPowerPoint Presentation
Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More informationMicrosoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
More information歯Writing_Enterprise_Applications_2_JunoYoon.PDF
Writing Enterprise Applications with Java 2 Platform, Enterprise Edition - part2 JSTORM http//wwwjstormpekr Revision Document Information Document title Writing Enterprise Applications
More informationMicrosoft PowerPoint - JCO2007_Spring2.0_발표자료_Rev-A.ppt [호환 모드]
From Spring 1.x Spring 2.0 To 이일민 (Consultant, Epril) 안영회 (Consultant, Epril) 2 목차 q Spring의목표와전략 q Spring 2.0 q Core Container and DI q AOP q Portable Service Abstractions q Web q Spring Portfolio 3 Spring
More informationBusiness Agility () Dynamic ebusiness, RTE (Real-Time Enterprise) IT Web Services c c WE-SDS (Web Services Enabled SDS) SDS SDS Service-riented Architecture Web Services ( ) ( ) ( ) / c IT / Service- Service-
More informationibmdw_rest_v1.0.ppt
REST in Enterprise 박찬욱 1-1- MISSING PIECE OF ENTERPRISE Table of Contents 1. 2. REST 3. REST 4. REST 5. 2-2 - Wise chanwook.tistory.com / cwpark@itwise.co.kr / chanwook.god@gmail.com ARM WOA S&C AP ENI
More information01-OOPConcepts(2).PDF
Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)
More informationDesign Issues
11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance
More informationMicrosoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]
- Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소
More informationResearch & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W
Research & Technique Apache Tomcat RCE 취약점 (CVE-2019-0232) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE-2019-0232 취약점은 Windows 시스템의 Apache Tomcat 서버에서 enablecmdlinearguments
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More informationSpring Boot
스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...
More information서현수
Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,
More informationMicrosoft PowerPoint - 03-TCP Programming.ppt
Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More informationJAVA PROGRAMMING 실습 09. 예외처리
2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오
More information슬라이드 1
- 1 - 전자정부개발프레임워크실행환경 목차 1. 실행환경소개 3. 데이터처리레이어 4. 화면처리레이어 5. 업무처리레이어 6. 연계통합레이어 7. [ 실습 ] 예제어플리케이션개발 - 2 - 1. 실행환경소개 1. 개요 2. 배경 3. 실행환경특징 4. 실행환경적용효과 5. 실행환경구성 6. 실행환경오픈소스소프트웨어사용현황 - 3 - 1. 개요 (1/3) 개발프레임워크환경
More informationSpring Batch 2.0 시작하기
작성자 : 최한수 (cuteimp@gmail.com) 최종수정일 : 2009 년 6 월 22 일 본문서는 Spring Batch을학습하고자하는사람들을위하여 Sample Project를통해 Spring Batch 의기본적인이해와사용을돕는것을목적으로한다. Spring Batch 소개 Spring Batch 란? 우리가일반적으로알고있는 Batch라는것은일괄적으로어떠한작업을반복적으로처리하는것이다.
More information14-Servlet
JAVA Programming Language Servlet (GenericServlet) HTTP (HttpServlet) 2 (1)? CGI 3 (2) http://jakarta.apache.org JSDK(Java Servlet Development Kit) 4 (3) CGI CGI(Common Gateway Interface) /,,, Client Server
More informationuntitled
3 IBM WebSphere User Conference ESB (e-mail : ljm@kr.ibm.com) Infrastructure Solution, IGS 2005. 9.13 ESB 를통한어플리케이션통합구축 2 IT 40%. IT,,.,, (Real Time Enterprise), End to End Access Processes bounded by
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More informationgnu-lee-oop-kor-lec06-3-chap7
어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More information4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편
4 주차 - SPRING 환경설정및구현 Spring 기반의웹프로젝트를구성하고싶어요 T^T Spring 기반의웹환경구축 1. web.xml 수정으로 Spring 을설정하는방법 2. eclipse Spring Plug-In 을활용한템플릿프로젝트자동구성필수는아니지만해놓으면편리한것들 1. slf4j 를활용한 Logger 생성을편리하게해보자 2. AOP 설정 JDBC
More information슬라이드 1
전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new
More information04장
20..29 1: PM ` 199 ntech4 C9600 2400DPI 175LPI T CHAPTER 4 20..29 1: PM ` 200 ntech4 C9600 2400DPI 175LPI T CHAPTER 4.1 JSP (Comment) HTML JSP 3 home index jsp HTML JSP 15 16 17 18 19 20
More information07 자바의 다양한 클래스.key
[ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,
More informationETL_project_best_practice1.ppt
ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication
More informationfinal_thesis
CORBA/SNMP DPNM Lab. POSTECH email : ymkang@postech.ac.kr Motivation CORBA/SNMP CORBA/SNMP 2 Motivation CMIP, SNMP and CORBA high cost, low efficiency, complexity 3 Goal (Information Model) (Operation)
More informationilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형
바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인
More informationChap12
12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)
More informationJ2EE & Web Services iSeminar
9iAS :, 2002 8 21 OC4J Oracle J2EE (ECperf) JDeveloper : OLTP : Oracle : SMS (Short Message Service) Collaboration Suite Platform Email Developer Suite Portal Java BI XML Forms Reports Collaboration Suite
More informationMicrosoft PowerPoint - 2강
컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.
More informationMVVM 패턴의 이해
Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어
More informationMasoJava4_Dongbin.PDF
JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr
More information내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri
6-20-4. Spring Boot REST CRUD 실습 (JPA, MariaDB) GitHub : https://github.com/leejongcheol/springbootrest 스프링부트에서 REST(REpresentational State Transfer) API 를실습해보자. RESTful 웹서비스는 JSON, XML 및기타미디어유형을생성하고활용할수있다.
More information자바-11장N'1-502
C h a p t e r 11 java.net.,,., (TCP/IP) (UDP/IP).,. 1 ISO OSI 7 1977 (ISO, International Standards Organization) (OSI, Open Systems Interconnection). 6 1983 X.200. OSI 7 [ 11-1] 7. 1 (Physical Layer),
More informationData Provisioning Services for mobile clients
4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationSpring
Spring MVC 프로젝트생성 2015 Web Service Computing 일반적인스프링의정의 스프링의정의 자바엔터프라이즈개발을편하게해주는오픈소스경량급애플리케이션프레임워크 스프링의기원 로드존슨 (Rod Johnson) 이라는유명 J2EE 개발자가출간한 Expert One-on- One J2EE Design and Development 이라는제목의책에소개된예제샘플
More information슬라이드 1
[ CRM Fair 2004 ] CRM 1. CRM Trend 2. Customer Single View 3. Marketing Automation 4. ROI Management 5. Conclusion 1. CRM Trend 1. CRM Trend Operational CRM Analytical CRM Sales Mgt. &Prcs. Legacy System
More informationWeb Application을 구성하는 패턴과 Spring ROO의 사례
Spring Roo 와함께하는 쾌속웹개발 정상혁, KSUG (www.ksug.org) 목차 1. Tool 2. Demo 3. Application 1. Tool 1.1 개요 1.2 Command line shell 1.3 Round-trip 1.4 익숙한도우미들 1.1 개요 Text Based RAD Tool for Java Real Object Oriented의첫글자들
More informationUSER GUIDE
Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.
More information(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])
예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음
More information05-class.key
5 : 2 (method) (public) (private) (interface) 5.1 (Method), (public method) (private method) (constructor), 3 4 5.2 (client). (receiver)., System.out.println("Hello"); (client object) (receiver object)
More informationJ2EE Concepts
! Introduction to J2EE (1) - J2EE Servlet/JSP/JDBC iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g
More informationDialog Box 실행파일을 Web에 포함시키는 방법
DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New
More information