메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

묻고 답하기

전자정부 배치 질문
  • 작성자

    튀**귄

  • 작성일

    2022-11-21 13:45:37

  • 조회수

    1,118

  • 구분

    실행환경 / 4.0

  • 진행상태

    완료

질문

전자정부프레임워크로 배치 개발 진행중입니다.
(템플릿 사용)

몇가지 질문 드리겠습니다.

dbtodb job으로 실행예시에서

1. 샘플 수행(이클립스 run as 에서) 아규먼트에 /egovframework/batch/context-commandline.xml mybatisToMybatisJob 넣고 실행하면 정상적으로 수행됩니다.
(완전 샘플과 동일한상태)
해당 상테에서 java -cp 로 수행하려면 정확히 command 명령어가 어떻게되나요?
java -cp "D:\eGovFrameDev-4.0.0-64bit\workspace\EgovDB\target\classes" egovframework.example.bat.commandline.EgovCommandLineJobRunner /egovframework/batch/context-commandline.xml mybatisToMybatisJob 로 수행하면 클래스를 찾을수 없다고 나옵니다...

2. 전자정부 배치에서 reader 와 writer 를 사용하지않고, 단순히 클래스만 호출하도록 하는것이 Tasklet 이라고 하는거같은데, 기존 개발자가 작성한 class 파일을 지정하여 호출만 하는것도 가능한가요?

3. 추가적으로 java -cp "classes" 하면 해당 폴더 아래에있는 모든 classes 파일을 배치실행시마다 로드하여, cpu 사용량, 수행시간 이 올라가는데, 로드하고싶은 클래스파일 경로만 지정할경우 "classes/A/B" 이런식으로 지정하면 되는건가요? 참조하는 클래스파일이 여러개일경우에는 "classes/A/B:classes/C" 이런식으로 지정하면 될까요?

질문이 초보적이라 죄송합니다ㅠㅠ

환경정보
    - OS 정보 : Windows 10
    - 표준프레임워크 버전 : 4.0
    - JDK(JRE) 정보 : 11
    - WAS 정보 : tomcat
    - DB 정보 : oracle
    - 기타 환경 정보 :
답변

안녕하세요.
표준프레임워크센터입니다.

Java 명령으로 실행하는 경우
pom.xml 파일에서 <build>요소 안에 다음을 추가합니다.
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>
개발환경에서 Run As > Maven install 하시면
/target/lib 디렉토리가 생성이 되었을 것입니다.

프로젝트 루트 디렉토리에서
다음과 같이 실행하시면 구동이 가능할듯 합니다.
java -cp "./target/classes/;./target/lib/*" ~~~~~~~~

Tasklet은 기존의 로직 또는 로직 자체를 커스텀하는 것이 가능하지만 
Tasklet의 excute()메서드를 구현하여 작성되어야 합니다.
해당 위키 가이드에서 상세 내용을 확인하실 수 있습니다.

감사합니다.

이 페이지의 구성

묻고 답하기