JBoss EAP 7 베타는 이제 출시레드햇, 그리고 특히 WildFly 팀! 이번 릴리스에는 다음 문서에 설명된 대로 많은 개선 사항이 있습니다. 릴리스 정보. 주요 테마 중 하나는 Java EE 7 규정 준수입니다.
JBoss EAP 7 및 Java EE 7
IBM과 오라클은 이미 상업적으로 지원되는 Java EE 7 호환 애플리케이션 서버를 제공하고 있습니다. 이제 Red Hat도 곧 이 대열에 합류할 예정입니다. WildFly는 2년 이상 Java EE 7을 지원해 왔지만, 오픈 소스가 전사적으로 채택되기 위해서는 상용 지원이 필수적입니다. 따라서 이것은 좋은 소식입니다! 다양한 디존 레프카드의 자바 EE 7 API 와 함께 저술한 알루빈저.
"헬로 월드"가 많이 있습니다. Java EE 7 샘플 모두 JBoss EAP와 함께 실행되어야 합니다. 누군가가 pom.xml
을 클릭하고 새 프로필을 추가합니다.
왜 NoSQL인가요?
기존 엔터프라이즈 애플리케이션을 구축하는 경우 RDBMS를 사용해도 괜찮을 수 있습니다. RDBMS를 사용하면 많은 이점이 있지만 대신 NoSQL 데이터베이스를 사용하면 몇 가지 장점이 있습니다:
- 미리 정의된 스키마가 필요하지 않으므로 스키마 없는 데이터베이스. 기존 개체에 새 속성을 쉽게 추가할 수 있으며 ALTER TABLE이 필요하지 않습니다. 기존 객체의 비정형 데이터 는 다운타임이나 서비스 수준 저하 없이 언제든지 데이터 형식을 유연하게 변경할 수 있습니다. 또한 구조가 없기 때문에 서버에서 조인이 발생하지 않으며, 따라서 조인 간의 관계도 없습니다.
- 확장성, 민첩성 및 성능 는 일반적으로 RDBMS에서 제공하는 전체 기능 세트보다 더 중요합니다. 이 데이터베이스 세트는 최종적인 일관성 및/또는 단일 항목으로 제한된 트랜잭션을 제공하지만 CRUD에 더 중점을 둡니다.
- NoSQL은 다음을 위해 설계되었습니다. 스케일 아웃 (수직) 확장 대신 (수평) 확장으로 전환합니다. 이는 데이터베이스뿐만 아니라 다른 모든 것이 클라우드로 이동하고 있다는 사실을 아는 것이 중요합니다. RBDMS는 샤딩을 사용하여 스케일아웃할 수 있지만 복잡한 관리가 필요하며, 마음이 약한 사람에게는 적합하지 않습니다. 샤드 간에 조인이 필요한 쿼리는 다음과 같습니다. 매우 비효율적.
- RDBMS에는 임피던스 불일치 데이터베이스 구조와 도메인 클래스 사이에 매핑이 필요합니다. 이러한 경우 Java 지속성 API 또는 Hibernate에서 제공하는 것과 같은 객체 관계형 매핑이 필요합니다.
- NoSQL 데이터베이스는 관리가 용이하도록 설계되었으며 데이터 모델이 더 단순하여 다음과 같은 이점을 제공합니다. 관리 비용 절감 도 마찬가지입니다.
이제 여러분 모두 NoSQL에 대해 관심을 갖고 자세히 알아보고 싶으실 것입니다:
간단히 말해, NoSQL 데이터베이스에는 네 가지 유형이 있습니다:
- 문서: 카우치베이스, 몽고 및 기타
- 키/값: Couchbase, Redis 및 기타
- 그래프: Neo4J, OrientDB 및 기타
- 칼럼: 카산드라 및 기타
Java EE 7은 NoSQL을 지원하지 않는 Java 지속성 API를 제공합니다. 그렇다면 JBoss EAP 7로 NoSQL을 어떻게 시작할 수 있을까요? 이 블로그에서는 JBoss EAP 7 베타에 배포된 간단한 Java EE 애플리케이션을 사용하여 Couchbase 데이터베이스를 쿼리하는 방법을 보여드립니다.
카우치베이스란 무엇인가요?
카우치베이스 는 오픈소스 NoSQL 문서 데이터베이스입니다. 고성능 데이터 액세스를 위한 통합 분산 캐싱을 활용하면서 JSON 문서에 액세스하고, 색인하고, 쿼리할 수 있습니다. 개발자는 다양한 언어(Java, Go, .NET, Node, PHP, Python, C)를 사용하여 Couchbase에 애플리케이션을 작성할 수 있습니다. 여러 SDK. 이 블로그에서는 다음을 사용하여 CRUD 애플리케이션을 쉽게 만드는 방법을 보여줍니다. 카우치베이스용 Java SDK.
JBoss EAP 7 실행
JBoss EAP 7을 시작하는 방법에는 두 가지가 있습니다.
다운로드 및 실행
- 다운로드 JBoss EAP 7 베타 을 클릭하고 압축을 풉니다.
- 로 애플리케이션 서버를 시작합니다:
1234567891011121314151617181920./jboss-eap-7.0/bin/독립형.sh=========================================================================JBoss 부트스트랩 환경JBOSS_HOME: /사용자/arungupta/도구/jboss-eap-7.0JAVA: 자바JAVA_OPTS: -서버 -verbose:gc -Xloggc:"/사용자/아룽업타/도구/jboss-eap-7.0/스탠다드얼론/로그/gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=true -Djboss.모듈.시스템.pkgs=org.jboss.바이트맨 -Djava.awt.헤드리스=true=========================================================================21:22:58,773 정보 [org.jboss.모듈] (메인) JBoss 모듈 버전 1.4.4.Final-redhat-1. . .21:23:21,441 정보 [org.jboss.as] (컨트롤러 부팅 스레드) WFLYSRV0060: Http 관리 인터페이스 듣기 on http://127.0.0.1:9990/management21:23:21,442 정보 [org.jboss.as] (컨트롤러 부팅 스레드) WFLYSRV0051: 관리자 콘솔 듣기 on http://127.0.0.1:999021:23:21,442 정보 [org.jboss.as] (컨트롤러 부팅 스레드) WFLYSRV0025: EAP 7.0.0.베타1 (WildFly 핵심 2.0.3.Final-redhat-1) 시작 in 22950ms - 시작됨 261 의 509 서비스 (332 서비스 는 게으른, 패시브 또는 on-수요)
도커 실행
컨테이너화된 세상에서는 도커 실행
를 사용하여 JBoss EAP를 실행합니다. 그러나 JBoss EAP 이미지는 다음과 같이 존재하지 않습니다. 도커 허브 를 사용하므로 이미지를 명시적으로 빌드해야 합니다. 여전히 JBoss EAP를 명시적으로 다운로드한 다음 다음을 사용해야 합니다. 도커파일 를 클릭해 이미지를 작성합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 최신 jboss/base-jdk:8 이미지를 기본으로 사용 FROM jboss/base-jdk:8 # JBOSS_VERSION 환경 변수를 설정합니다. 환경 JBOSS_버전 7.0.0.베타 환경 JBOSS_HOME /opt/jboss/jboss-eap-7.0/ COPY jboss-eap-$JBOSS_VERSION.zip $홈 # /opt에 JBoss 배포를 추가하고, 추출된 zip 콘텐츠의 소유자를 jboss로 설정합니다. # 잘 알려진 곳에서 배포가 가능한지 확인합니다. RUN cd $홈 && 압축 해제 jboss-eap-$JBOSS_VERSION.zip && rm jboss-eap-$JBOSS_VERSION.zip # 부드러운 종료를 위해 신호가 JVM 프로세스에 올바르게 전달되는지 확인합니다. 환경 런치_제이보스_인_백그라운드 true # 관심 있는 포트 노출하기 EXPOSE 8080 9990 # 부팅 시 실행할 기본 명령 설정 # 이렇게 하면 독립 실행형 모드에서 JBoss EAP가 부팅되고 모든 인터페이스에 바인딩됩니다. CMD ["/opt/jboss/jboss-eap-7.0/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"] |
이미지가 다음과 같이 빌드됩니다:
1 |
도커 빌드 -t arungupta/jboss-eap:7-베타 . |
그런 다음 JBoss EAP 7 컨테이너를 다음과 같이 실행할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
도커 실행 -it -p 8080:8080 arungupta/jboss-eap:7-베타 ========================================================================= JBoss 부트스트랩 환경 JBOSS_HOME: /opt/jboss/jboss-eap-7.0/ JAVA: /usr/lib/jvm/자바/bin/자바 JAVA_OPTS: -서버 -verbose:gc -Xloggc:"/opt/jboss/jboss-eap-7.0//standalone/log/gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=true -Djboss.모듈.시스템.pkgs=org.jboss.바이트맨 -Djava.awt.헤드리스=true ========================================================================= 20:51:12,551 정보 [org.jboss.모듈] (메인) JBoss 모듈 버전 1.4.4.Final-redhat-1 20:51:12,824 정보 [org.jboss.msc] (메인) JBoss MSC 버전 1.2.6.Final-redhat-1 . . . 20:51:16,750 정보 [org.jboss.as] (컨트롤러 부팅 스레드) WFLYSRV0060: Http 관리 인터페이스 듣기 on http://0.0.0.0:9990/management 20:51:16,758 정보 [org.jboss.as] (컨트롤러 부팅 스레드) WFLYSRV0051: 관리자 콘솔 듣기 on http://0.0.0.0:9990 20:51:16,759 정보 [org.jboss.as] (컨트롤러 부팅 스레드) WFLYSRV0025: EAP 7.0.0.베타1 (WildFly 핵심 2.0.3.Final-redhat-1) 시작 in 4529ms - 시작됨 261 의 509 서비스 (332 서비스 는 게으른, 패시브 또는 on-수요) |
애플리케이션 및 관리 포트가 모든 네트워크 인터페이스에 바인딩되는 방식에 주목하세요. 이렇게 하면 나중에 이 JBoss EAP 인스턴스에 애플리케이션을 배포하는 것이 간단해집니다. 나중에 더 쉽게 시작할 수 있는 방법을 보여드리기 위해 서버를 중지합니다.
애플리케이션 서버 및 데이터베이스 시작
Java EE 애플리케이션은 Couchbase에 저장된 JSON 문서를 통해 HTTP CRUD 인터페이스를 제공합니다. 애플리케이션 자체는 JBoss EAP 7 베타에 배포됩니다. 따라서 Couchbase와 JBoss EAP를 시작해야 합니다. 다음에서 Docker Compose 파일을 사용합니다. github.com/arun-gupta/docker-images/blob/master/jboss-eap7-nosql/docker-compose.yml 를 클릭하여 Couchbase 및 JBoss EAP 7 컨테이너를 시작합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
mycouchbase: 컨테이너_이름: "db" 이미지: 카우치베이스/서버 포트: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 jboss: 이미지: arungupta/jboss-eap:7-베타 환경: - COUCHBASE_URI=db 포트: - 8080:8080 - 9990:9990 |
애플리케이션은 다음과 같이 시작됩니다:
1 2 3 4 |
도커-작성 --x-네트워킹 up -d 만들기 네트워크 "jbosseap7nosql" 와 함께 드라이버 "없음" 시작 jbosseap7nosql_jboss_1 만들기 db |
시작된 컨테이너는 다음과 같이 볼 수 있습니다:
1 2 3 4 |
도커 ps 컨테이너 ID 이미지 COMMAND 생성됨 상태 포트 이름 154436dfbfb1 카우치베이스/서버 "/entrypoint.sh couch" 10 초 전 Up 8 초 0.0.0.0:8091-8093->8091-8093/tcp, 11207/tcp, 11211/tcp, 18091-18092/tcp, 0.0.0.0:11210->11210/tcp db cb76d4e38df3 arungupta/jboss-eap:7-베타 "/opt/jboss/jboss-eap" 10 초 전 Up 9 초 0.0.0.0:8080->8080/tcp, 0.0.0.0:9990->9990/tcp jbosseap7nosql_jboss_1 |
카우치베이스 서버 구성
복제 카우치베이스-자비 애플리케이션입니다. 이 Java EE 애플리케이션은 다음을 사용합니다. Couchbase Java SDK API 를 클릭하여 Couchbase 서버에 연결합니다. 부트스트랩 코드는 다음과 같습니다:
1 |
카우치베이스클러스터.create(시스템.getenv("couchbase_uri")); |
에서 호출되며 데이터베이스 추상화. 카우치베이스 서버는 다음을 사용하여 구성할 수 있습니다. REST API. 이러한 REST API는 Maven 프로필에 정의되어 있습니다. pom.xml
로 설정합니다. 따라서 Couchbase 서버를 다음과 같이 구성합니다:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
mvn 설치 -Pcouchbase -Ddocker.호스트=$(도커-machine IP 카우치베이스) [정보] 스캔 에 대한 프로젝트... [정보] [정보] ------------------------------------------------------------------------ [정보] 빌딩 카우치베이스-javaee 1.0-스냅샷 [정보] ------------------------------------------------------------------------ [정보] [정보] --- maven-리소스-플러그인:2.6:리소스 (기본값-리소스) @ 카우치베이스-javaee --- [정보] 사용 'UTF-8' 인코딩 에 복사 필터링됨 리소스. [정보] 복사 0 리소스 [정보] [정보] --- maven-컴파일러-플러그인:2.3.2:컴파일 (기본값-컴파일) @ 카우치베이스-javaee --- [정보] 아무것도 에 컴파일 - 모두 클래스 는 up 에 날짜 [정보] [정보] --- maven-리소스-플러그인:2.6:testResources (기본값-testResources) @ 카우치베이스-javaee --- [정보] 사용 'UTF-8' 인코딩 에 복사 필터링됨 리소스. [정보] 건너뛰기 비 기존 resourceDirectory /사용자/arungupta/작업 공간/카우치베이스-javaee/src/테스트/리소스 [정보] [정보] --- maven-컴파일러-플러그인:2.3.2:testCompile (기본값-testCompile) @ 카우치베이스-javaee --- [정보] 아무것도 에 컴파일 - 모두 클래스 는 up 에 날짜 [정보] [정보] --- maven-확실한-플러그인:2.12.4:테스트 (기본값-테스트) @ 카우치베이스-javaee --- [정보] [정보] --- maven-전쟁-플러그인:2.1.1:전쟁 (기본값-전쟁) @ 카우치베이스-javaee --- [정보] 패키징 웹앱 [정보] 조립 웹앱 [카우치베이스-javaee] in [/사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee] [정보] 처리 전쟁 프로젝트 [정보] 복사 웹앱 리소스 [/사용자/arungupta/작업 공간/카우치베이스-javaee/src/메인/웹앱] [정보] 웹앱 조립 in [82 msecs] [정보] 빌딩 전쟁: /사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee.전쟁 [정보] [정보] --- maven-설치-플러그인:2.4:설치 (기본값-설치) @ 카우치베이스-javaee --- [정보] 설치 /사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee.전쟁 에 /사용자/arungupta/.m2/저장소/org/카우치베이스/샘플/카우치베이스-javaee/1.0-스냅샷/카우치베이스-javaee-1.0-스냅샷.전쟁 [정보] 설치 /사용자/arungupta/작업 공간/카우치베이스-javaee/pom.xml 에 /사용자/arungupta/.m2/저장소/org/카우치베이스/샘플/카우치베이스-javaee/1.0-스냅샷/카우치베이스-javaee-1.0-스냅샷.pom [정보] [정보] --- exec-maven-플러그인:1.4.0:exec (구성 메모리) @ 카우치베이스-javaee --- * 호스트 이름 는 NOT 발견 in DNS 캐시 * 시도 중 192.168.99.102... % 합계 % 수신됨 % Xferd 평균 속도 시간 시간 시간 현재 Dload 업로드 합계 소비 왼쪽 속도 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* 연결됨 에 192.168.99.102 (192.168.99.102) 포트 8091 (#0) > POST /풀/기본값 HTTP/1.1 > 사용자-에이전트: curl/7.37.1 > 호스트: 192.168.99.102:8091 > 수락: */* > 콘텐츠 길이: 36 > 콘텐츠 유형: application/x-www-form-urlencoded > } [데이터 표시되지 않음] * 업로드가 완전히 전송되었습니다: 36바이트 중 36바이트 < http/1.1 200 ok * 서버 카우치베이스 서버가 블랙리스트에 없습니다. < 서버: 카우치베이스 서버 < 프래그마: 캐시 없음 < 날짜 월, 21 Dec 2015 21:35:10 GMT < 콘텐츠 길이: 0 < 캐시 제어: 캐시 없음 POST /node/controller/setupServices HTTP/1.1 > 사용자-에이전트: curl/7.37.1 > 호스트: 192.168.99.102:8091 > 수락을 클릭합니다: */* > 콘텐츠-길이: 26 > 콘텐츠-유형: 애플리케이션/x-www-양식-urlencoded > } [데이터 not 표시] * 업로드 완전히 보낸 꺼짐: 26 out 의 26 바이트 < HTTP/1.1 200 확인 * 서버 카우치베이스 서버 는 not 블랙리스트 < 서버: 카우치베이스 서버 < Pragma: 아니요-캐시 < 날짜: 월, 21 12월 2015 21:35:10 GMT < 콘텐츠-길이: 0 < 캐시-제어: 아니요-캐시 < 100 26 0 0 100 26 0 9976 --:--:-- --:--:-- --:--:-- 13000 * 연결 #0 호스트 192.168.99.102에 연결됨 [INFO] [INFO] --- exec-maven-plugin:1.4.0:exec (설정 자격 증명) @ couchbase-javaee --- * 호스트 이름을 DNS 캐시에서 찾을 수 없음 * 192.168.99.102... 시도 중... % 총 % 수신 % 평균 속도 시간 시간 현재 로드 업로드 총 남은 속도 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* 192.168.99.102 (192.168.99.102) 포트 8091 (#0)에 연결됨 > POST /settings/web HTTP/1.1 > 사용자-에이전트: curl/7.37.1 > 호스트: 192.168.99.102:8091 > 수락: */* > 콘텐츠 길이: 50 > 콘텐츠 유형: application/x-www-form-urlencoded > } [데이터 표시되지 않음] * 업로드가 완전히 전송되었습니다: 50바이트 중 50바이트 < http/1.1 200 ok * 서버 카우치베이스 서버가 블랙리스트에 없습니다. < 서버: 카우치베이스 서버 < 프래그마: 캐시 없음 < 날짜 월, 21 Dec 2015 21:35:10 GMT < 콘텐츠 유형: 애플리케이션/json < 콘텐츠 길이: 44 < 캐시 제어: 캐시 없음 POST /sampleBuckets/install HTTP/1.1로 기본 인증 서버 인증 사용 > 인증: 기본 QWRtaW5pc3RyYXRvcjpwYXNzd29yZA== > 사용자-에이전트: curl/7.37.1 > 호스트: 192.168.99.102:8091 > 수락을 클릭합니다: */* > 콘텐츠-길이: 17 > 콘텐츠-유형: 애플리케이션/x-www-양식-urlencoded > } [데이터 not 표시] * 업로드 완전히 보낸 꺼짐: 17 out 의 17 바이트 < HTTP/1.1 202 수락됨 * 서버 카우치베이스 서버 는 not 블랙리스트 < 서버: 카우치베이스 서버 < Pragma: 아니요-캐시 < 날짜: 월, 21 12월 2015 21:35:11 GMT < 콘텐츠-유형: 애플리케이션/json < 콘텐츠-길이: 2 < 캐시-제어: 아니요-캐시 < { [데이터 not 표시] 100 19 100 2 100 17 41 355 --:--:-- --:--:-- --:--:-- 361 * 연결 #0에서 호스트 192.168.99.102까지 그대로 유지됨 [][정보] ------------------------------------------------------------------------ [정보] 빌드 성공 [정보] ------------------------------------------------------------------------ [정보] 합계 시간: 2.094 s [정보] 완료 에서: 2015-12-21T13:35:11-08:00 [정보] 최종 메모리: 13M/309M [정보] ------------------------------------------------------------------------ |
Java EE 애플리케이션을 JBoss에 배포하기
Java EE 애플리케이션은 다음을 사용하여 JBoss EAP 7 베타에 쉽게 배포할 수 있습니다. 와일드플라이 메이븐 플러그인. 이것은 또한 다음에서 Maven 프로필로 정의됩니다. pom.xml
도 사용할 수 있습니다. 애플리케이션을 다음 이름으로 배포합니다:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
mvn 설치 -Pwildfly -Dwildfly.호스트 이름=$(도커-machine IP 카우치베이스) -Dwildfly.사용자 이름=관리자 -Dwildfly.비밀번호=관리자#007 [정보] 스캔 에 대한 프로젝트... [정보] [정보] ------------------------------------------------------------------------ [정보] 빌딩 카우치베이스-javaee 1.0-스냅샷 [정보] ------------------------------------------------------------------------ [정보] [정보] --- maven-리소스-플러그인:2.6:리소스 (기본값-리소스) @ 카우치베이스-javaee --- [정보] 사용 'UTF-8' 인코딩 에 복사 필터링됨 리소스. [정보] 복사 0 리소스 [정보] [정보] --- maven-컴파일러-플러그인:2.3.2:컴파일 (기본값-컴파일) @ 카우치베이스-javaee --- [정보] 아무것도 에 컴파일 - 모두 클래스 는 up 에 날짜 [정보] [정보] --- maven-리소스-플러그인:2.6:testResources (기본값-testResources) @ 카우치베이스-javaee --- [정보] 사용 'UTF-8' 인코딩 에 복사 필터링됨 리소스. [정보] 건너뛰기 비 기존 resourceDirectory /사용자/arungupta/작업 공간/카우치베이스-javaee/src/테스트/리소스 [정보] [정보] --- maven-컴파일러-플러그인:2.3.2:testCompile (기본값-testCompile) @ 카우치베이스-javaee --- [정보] 아무것도 에 컴파일 - 모두 클래스 는 up 에 날짜 [정보] [정보] --- maven-확실한-플러그인:2.12.4:테스트 (기본값-테스트) @ 카우치베이스-javaee --- [정보] [정보] --- maven-전쟁-플러그인:2.1.1:전쟁 (기본값-전쟁) @ 카우치베이스-javaee --- [정보] 패키징 웹앱 [정보] 조립 웹앱 [카우치베이스-javaee] in [/사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee] [정보] 처리 전쟁 프로젝트 [정보] 복사 웹앱 리소스 [/사용자/arungupta/작업 공간/카우치베이스-javaee/src/메인/웹앱] [정보] 웹앱 조립 in [62 msecs] [정보] 빌딩 전쟁: /사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee.전쟁 [정보] [정보] --- maven-설치-플러그인:2.4:설치 (기본값-설치) @ 카우치베이스-javaee --- [정보] 설치 /사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee.전쟁 에 /사용자/arungupta/.m2/저장소/org/카우치베이스/샘플/카우치베이스-javaee/1.0-스냅샷/카우치베이스-javaee-1.0-스냅샷.전쟁 [정보] 설치 /사용자/arungupta/작업 공간/카우치베이스-javaee/pom.xml 에 /사용자/arungupta/.m2/저장소/org/카우치베이스/샘플/카우치베이스-javaee/1.0-스냅샷/카우치베이스-javaee-1.0-스냅샷.pom [정보] [정보] >>> wildfly-maven-플러그인:1.1.0.Alpha4:배포 (기본값) > 패키지 @ 카우치베이스-javaee >>> [정보] [정보] --- maven-리소스-플러그인:2.6:리소스 (기본값-리소스) @ 카우치베이스-javaee --- [정보] 사용 'UTF-8' 인코딩 에 복사 필터링됨 리소스. [정보] 복사 0 리소스 [정보] [정보] --- maven-컴파일러-플러그인:2.3.2:컴파일 (기본값-컴파일) @ 카우치베이스-javaee --- [정보] 아무것도 에 컴파일 - 모두 클래스 는 up 에 날짜 [정보] [정보] --- maven-리소스-플러그인:2.6:testResources (기본값-testResources) @ 카우치베이스-javaee --- [정보] 사용 'UTF-8' 인코딩 에 복사 필터링됨 리소스. [정보] 건너뛰기 비 기존 resourceDirectory /사용자/arungupta/작업 공간/카우치베이스-javaee/src/테스트/리소스 [정보] [정보] --- maven-컴파일러-플러그인:2.3.2:testCompile (기본값-testCompile) @ 카우치베이스-javaee --- [정보] 아무것도 에 컴파일 - 모두 클래스 는 up 에 날짜 [정보] [정보] --- maven-확실한-플러그인:2.12.4:테스트 (기본값-테스트) @ 카우치베이스-javaee --- [정보] 건너뛰기 실행 의 확실한 왜냐하면 it has 이미 been 실행 에 대한 이 구성 [정보] [정보] --- maven-전쟁-플러그인:2.1.1:전쟁 (기본값-전쟁) @ 카우치베이스-javaee --- [정보] 패키징 웹앱 [정보] 조립 웹앱 [카우치베이스-javaee] in [/사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee] [정보] 처리 전쟁 프로젝트 [정보] 복사 웹앱 리소스 [/사용자/arungupta/작업 공간/카우치베이스-javaee/src/메인/웹앱] [정보] 웹앱 조립 in [20 msecs] [정보] 빌딩 전쟁: /사용자/arungupta/작업 공간/카우치베이스-javaee/대상/카우치베이스-javaee.전쟁 [정보] [정보] <<< wildfly-maven-플러그인:1.1.0.Alpha4:배포 (기본값) < 패키지 @ 카우치베이스-javaee <<< [정보] [정보] --- wildfly-maven-플러그인:1.1.0.Alpha4:배포 (기본값) @ 카우치베이스-javaee --- 12월 21, 2015 1:43:34 PM org.xnio.Xnio 정보: XNIO 버전 3.3.1.최종 12월 21, 2015 1:43:34 PM org.xnio.nio.니오엑스니오 정보: XNIO NIO 구현 버전 3.3.1.최종 12월 21, 2015 1:43:34 PM org.jboss.원격3.EndpointImpl 정보: JBoss 원격 제어 버전 4.0.9.Final [정보] 인증 반대 보안 영역: 관리 영역 [정보] ------------------------------------------------------------------------ [정보] 빌드 성공 [정보] ------------------------------------------------------------------------ [정보] 합계 시간: 17.010 s [정보] 완료 에서: 2015-12-21T13:43:48-08:00 [정보] 최종 메모리: 17M/217M [정보] ------------------------------------------------------------------------ |
애플리케이션에 액세스
앞서 언급했듯이 이 애플리케이션은 Couchbase에 저장된 JSON 문서를 통해 HTTP CRUD API를 제공합니다. 애플리케이션에 다음과 같이 액세스합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
curl -v http://$(도커 머신 IP 카우치베이스):8080/couchbase-javaee/자원/항공편 * 호스트 이름 는 NOT 발견 in DNS 캐시 * 시도 중 192.168.99.102... * 연결됨 에 192.168.99.102 (192.168.99.102) 포트 8080 (#0) > GET /카우치베이스-javaee/리소스/항공사 HTTP/1.1 > 사용자-에이전트: curl/7.37.1 > 호스트: 192.168.99.102:8080 > 수락: */* > < HTTP/1.1 200 확인 < 연결: keep-살아있음 < X-전원-으로: 언더로우/1 * 서버 JBoss-EAP/7 는 not 블랙리스트 < 서버: JBoss-EAP/7 < 콘텐츠-유형: 애플리케이션/옥텟-스트림 < 콘텐츠-길이: 1402 < 날짜: 월, 21 12월 2015 21:45:40 GMT < * 연결 #0에서 호스트 192.168.99.102까지 그대로 유지됨 [{"travel-sample":{"country":"미국","iata":"Q5","콜사인":"MILE-AIR","name":"40마일 에어","icao":"MLA","id":10,"type":"항공사"}}, {"travel-sample":{"country":"미국","iata":"TQ","콜사인":"TXW","name":"텍사스 윙","icao":"TXW","id":10123,"type":"항공사"}}, {"travel-sample":{"country":"미국","iata":"A1","콜사인":"atifly","name":"Atifly","icao":"A1F","id":10226,"type":"항공사"}}, {"travel-sample":{"country":"영국","iata":null,"콜사인":null,"name":"Jc royal.britannica","icao":"JRB","id":10642,"type":"항공사"}}, {"travel-sample":{"country":"미국","iata":"ZQ","콜사인":"LOCAIR","name":"Locair","icao":"LOC","id":10748,"type":"항공사"}}, {"travel-sample":{"country":"미국","iata":"K5","콜사인":"SASQUATCH","name":"씨포트 항공","icao":"SQH","id":10765,"type":"항공사"}}, {"travel-sample":{"country":"미국","iata":"KO","콜사인":"ACE AIR","name":"알래스카 센트럴 익스프레스","icao":"AER","id":109,"type":"항공사"}}, {"travel-sample":{"country":"영국","iata":"5W","콜사인":"FLYSTAR","name":"아스트라에우스","icao":"AEU","id":112,"type":"항공사"}}, {"travel-sample":{"country":"프랑스","iata":"UU","콜사인":"REUNION","name":"Air Austral","icao":"REU","id":1191,"type":"항공사"}}, {"travel-sample":{"country":"프랑스","iata":"A5","콜사인":"AIRLINAIR","name":"Airlinair","icao":"RLA","id":1203,"type":"항공사"}}] |
애플리케이션의 항공사 리소스에서 CRUD 작업(GET, POST, PUT, DELETE)을 수행할 수 있습니다. 전체 CRUD API는 다음 문서에 설명되어 있습니다. github.com/arun-gupta/couchbase-javaee. 이 블로그에서는 JBoss EAP 7에서 NoSQL 데이터베이스에 액세스하는 방법을 설명합니다. Couchbase 4에 대해 자세히 읽어보세요:
- 카우치베이스 서버 4.1의 새로운 기능
- 카우치베이스 서버 문서
- 다음 연락처로 문의하세요. 카우치베이스 포럼
- 팔로우 @couchbasedev 또는 @couchbase
최근 개발자 중심 웨비나에서 Couchbase에 대해 자세히 알아보세요: