전자정부 배치 질문
- 작성자 :
- 튀**귄
- 작성일 :
- 2022-11-21 13:45:37
- 조회수 :
- 412
- 구분 :
- 실행환경 / 4.0
- 진행상태 :
- 완료
Q
전자정부프레임워크로 배치 개발 진행중입니다.
(템플릿 사용)
몇가지 질문 드리겠습니다.
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" 이런식으로 지정하면 될까요?
질문이 초보적이라 죄송합니다ㅠㅠ
(템플릿 사용)
몇가지 질문 드리겠습니다.
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
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
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()메서드를 구현하여 작성되어야 합니다.
해당 위키 가이드에서 상세 내용을 확인하실 수 있습니다.
감사합니다.
표준프레임워크센터입니다.
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()메서드를 구현하여 작성되어야 합니다.
해당 위키 가이드에서 상세 내용을 확인하실 수 있습니다.
감사합니다.