메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


* 참조 : https://www.lagomframework.com/documentation/1.3.x/java/GettingStartedMaven.html#Generate-a-project-with-the-Lagom-archetype


1. 특정 위치에 폴더 생성및 이동
mkdir c:tmpHello
cd c:tmpHello


2. Hello 샘플 프로젝트 자동생성 실행
mvn archetype:generate -Dfilter=com.lightbend.lagom:maven-archetype-lagom-java


3. 진행화면
C:tmpHello>mvn archetype:generate -Dfilter=com.lightbend.lagom:maven-archetype-lagom-java
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> com.lightbend.lagom:maven-archetype-lagom-java (maven-archetype-lagom-java)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1
Choose com.lightbend.lagom:maven-archetype-lagom-java version:
1: 1.1.0-RC1
2: 1.1.0
3: 1.2.0-RC1
4: 1.2.0-RC2
5: 1.2.0
6: 1.2.1
7: 1.2.2
8: 1.2.3
9: 1.3.0-M1
10: 1.3.0-RC1
11: 1.3.0-RC2
12: 1.3.0
13: 1.3.1
14: 1.3.2
15: 1.3.3
16: 1.3.4
17: 1.3.5
18: 1.3.6
19: 1.3.7-RC1
20: 1.3.7
21: 1.3.8-M1
22: 1.3.8
23: 1.3.9
24: 1.3.10-M1
25: 1.3.10
26: 1.4.0-M1
27: 1.4.0-M2
28: 1.4.0-M3
29: 1.4.0-RC1
Choose a number: 29: 29
Downloading: https://repo.maven.apache.org/maven2/com/lightbend/lagom/maven-archetype-lagom-java/1.4.0-RC1/maven-archetype-lagom-java-1.4.0-RC1.pom
Downloaded: https://repo.maven.apache.org/maven2/com/lightbend/lagom/maven-archetype-lagom-java/1.4.0-RC1/maven-archetype-lagom-java-1.4.0-RC1.pom (2 KB at 3.8 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/com/lightbend/lagom/maven-archetype-lagom-java/1.4.0-RC1/maven-archetype-lagom-java-1.4.0-RC1.jar
Downloaded: https://repo.maven.apache.org/maven2/com/lightbend/lagom/maven-archetype-lagom-java/1.4.0-RC1/maven-archetype-lagom-java-1.4.0-RC1.jar (35 KB at 101.2 KB/sec)
Define value for property 'groupId': com.example.hello
Define value for property 'artifactId': my-first-system
Define value for property 'version' 1.0-SNAPSHOT: : Enter
Define value for property 'package' com.example.hello: : Enter
[INFO] Using property: scala-binary-version = 2.12
[INFO] Using property: service1ClassName = Hello
[INFO] Using property: service1Name = hello
[INFO] Using property: service2ClassName = Stream
[INFO] Using property: service2Name = stream
Confirm properties configuration:
groupId: com.example.hello
artifactId: my-first-system
version: 1.0-SNAPSHOT
package: com.example.hello
scala-binary-version: 2.12
service1ClassName: Hello
service1Name: hello
service2ClassName: Stream
service2Name: stream
  Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-lagom-java:1.4.0-RC1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example.hello
[INFO] Parameter: artifactId, Value: my-first-system
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example.hello
[INFO] Parameter: packageInPathFormat, Value: com/example/hello
[INFO] Parameter: service2Name, Value: stream
[INFO] Parameter: service1Name, Value: hello
[INFO] Parameter: groupId, Value: com.example.hello
[INFO] Parameter: service1ClassName, Value: Hello
[INFO] Parameter: scala-binary-version, Value: 2.12
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example.hello
[INFO] Parameter: service2ClassName, Value: Stream
[INFO] Parameter: artifactId, Value: my-first-system
[INFO] Project created from Archetype in dir: C:tmpHellomy-first-system
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:50 min
[INFO] Finished at: 2018-01-19T15:31:56+09:00
[INFO] Final Memory: 17M/217M
[INFO] ------------------------------------------------------------------------


*컴파일시 getName(), getMessage()가 정의되지 않았다는 오류가 발생하면 https://www.gooper.com/ss/index.php?mid=bigdata&category=2825&document_srl=3572 를 참고하여 조치하고 재 컴파일 해준다.


4. 프로젝트 구조

my-first-system
 └ hello-api/             → hello world api project dir
 └ hello-impl/            → hello world implementation dir
 └ integration-tests/
 └ stream-api/            → stream api project dir
 └ stream-impl/           → stream implementation project dir
 └ pom.xml                → Project group build file


5. Hello 서비스 실행

cd my-first-system

mvn lagom:runAll

...
[info] Starting embedded Cassandra server
..........
[info] Cassandra server running at 127.0.0.1:4000
[info] Service locator is running at http://localhost:8000
[info] Service gateway is running at http://localhost:9000
...
[info] Service hello-impl listening for HTTP on 0:0:0:0:0:0:0:0:24266
[info] Service stream-impl listening for HTTP on 0:0:0:0:0:0:0:0:26230
(Services started, press enter to stop and go back to the console...)


6.hello 서비스 수행확인(HTTP client의 endpoint를 이용하여 확인)

http://localhost:9000/api/hello/World



번호 제목 날짜 조회 수
53 [gson]mongodb의 api를 이용하여 데이타를 가져올때 "com.google.gson.stream.MalformedJsonException: Unterminated object at line..." 오류발생시 조치사항 2017.12.11 7584
52 Caused by: java.sql.SQLNonTransientConnectionException: Could not read resultset: unexpected end of stream, read 0 bytes from 4 오류시 확인/조치할 내용 2016.10.31 6944
51 python2.7.4에서 Oracle DB(11.2)를 사용하기 위한 설정(RPM을 이용하여 RHEL 7.4에 설치) 2021.11.26 5578
50 List<Map<String, String>>형태의 데이타에서 중복제거 하는 방법 2016.12.23 5069
49 python test.py실행시 "ImportError: No module named pyspark" 혹은 "ImportError: No module named py4j.protocol"등의 오류 발생시 조치사항 2017.07.04 5029
48 ./gradlew :composeDown 및 ./gradlew :composeUp 를 성공했을때의 메세지 2023.02.20 5016
47 Mybatis foreach 문법정리(상황에 따른 사용법) 2015.11.10 4910
46 [ftgo_application]Unable to infer base url오류 발생시 조치방법 2023.02.20 4829
45 vuestorefrontui.io를 이용한 front end project 생성하기 2022.02.06 4797
44 AIX 7.1에 Python 2.7.11설치하기 2016.10.06 4781
43 CentOS6에 python3.5.1 소스코드로 빌드하여 설치하기 2016.05.27 4507
42 lagom-linux용 build.sbt파일 내용 2017.10.12 4386
41 마이바티스(MyBatis)쿼리로그 출력및 정렬하기 2015.12.01 4347
40 jsoup 사용 예제 2014.06.06 4338
39 mybatis와 spring을 org.apache.commons.dbcp2.BasicDataSource의 DataSource로 연동할때 DB설정(참고) 2016.10.31 4324
38 maven을 이용하여 Hello world 서비스 자동 생성시 HelloServiceImpl.java에서 사용하는 getMessage() 와 getName() 이 정의되지 않은 오류가 발생시 조치방법 2018.01.19 4272
37 Class.forName을 이용한 메서드 호출 샘플소스 2016.12.21 4225
36 scala-eclipse 다운로드 2019.06.09 4060
35 [Jsoup]특정페이지를 jsoup을 이용하여 파싱하는 샘플소스 2017.04.18 4031
34 [tomcat] logrotate를 이용하여 catalina.out로그파일 일별로 로테이션 저장하기 file 2017.01.18 3985
위로