툴링 사용자 가이드

Red Hat Fuse 7.7

툴링 사용자 가이드

Red Hat Fuse Documentation Team

초록

이 가이드에서는 통합 애플리케이션을 설계, 개발, 테스트 및 디버깅할 때 생산성을 높이기 위해 설계된 개발자 툴을 제공하는 Red Hat Fuse Tooling을 사용하는 방법을 설명합니다.

머리말

Red Hat Fuse Tooling은 Red Hat CodeReady Studio 내에서 통합 애플리케이션 개발 프로세스를 간소화하고 간소화하는 Eclipse 기반 IDE입니다. Fuse Tooling은 다음과 같이 특별히 설계된 개발자 툴 세트를 제공합니다.

  • Red Hat Fuse
  • Red Hat JBoss EAP
  • Apache Camel
  • Apache CXF
  • Apache Karaf
  • Spring Boot

이 가이드에서는 Fuse Tooling을 사용하여 다음을 수행하는 방법에 대한 정보를 제공합니다.

  • Maven 종속성을 포함하여 애플리케이션에 대한 프로젝트를 생성합니다.
  • 엔터프라이즈 통합 패턴 연결 및 구성 - 경로 빌드
  • 엔드포인트 및 경로 검색
  • 메시지를 실행 중인 경로로 드래그 앤 드롭
  • Cryostat를 통해 런타임 프로세스 검색 및 시각화
  • 로컬에서 실행되는 Camel 컨텍스트 및 경로 디버그
  • 다음을 통해 애플리케이션을 테스트합니다.

    • Apache Camel 경로에서 JUnit 테스트 케이스 생성 및 사용
    • Cryostat를 사용하여 실행 중인 구성 요소 분석
    • Apache Camel 경로를 통한 메시지 추적
  • 애플리케이션 배포

새 사용자의 경우 도구 자습서 는 샘플 Camel 애플리케이션을 생성, 디버그, 테스트 및 배포하는 방법에 대한 단계별 지침을 제공합니다.

I 부. 애플리케이션 개발

1장. 새 Fuse 통합 프로젝트 생성

1.1. 개요

새 Fuse Integration 프로젝트를 생성하려면 다음과 같은 주요 단계가 포함됩니다.

프로젝트를 구성한 후 툴은 필요한 Maven 종속 항목을 모두 다운로드하고 프로젝트를 실행하고 게시하는 데 필요한 POM 파일을 생성합니다.

참고

CodeReady Studio에서 Fuse 프로젝트를 처음 빌드하는 경우 마법사가 원격 Maven 리포지토리에서 종속성을 다운로드할 때 프로젝트 생성을 완료하는 데 몇 분이 걸릴 수 있습니다.

1.2. 사전 준비 사항

새 Fuse Integration 프로젝트를 생성하기 전에 다음 정보를 확보해야 합니다.

  • 대상 런타임 환경: OpenShift 또는 Fuse 독립 실행형으로 Fuse on OpenShift 또는 Fuse (스프링 부팅, Fuse on Karaf 또는 Fuse on EAP)
  • Camel 버전(컬렉션에서 기본 사용 이외의 경우)

1.3. 프로젝트 이름 및 작업 공간 지정

새 Fuse Integration 프로젝트를 생성하려면 다음 단계를 따르십시오.

  1. NewProjectRed Hat FuseFuse Integration Project 를 선택하여 New Fuse Integration Project 마법사를 엽니다.

    위치 창에서 선택한 Use default workspace location 옵션을 사용하여 마법사가 열립니다.

    nfpProjectName1
  2. 프로젝트 이름에 새 프로젝트의 이름을 입력합니다(예: MySampleProject ).
  3. 프로젝트의 데이터를 저장할 작업 공간 위치를 지정합니다.

    • 기본 작업 공간을 사용하려면 Use default workspace location 옵션을 활성화한 상태로 둡니다.
    • 대체 위치를 사용하려면 기본 작업 공간 위치 사용 옵션을 지우고 경로 필드에 위치를 지정합니다.

      BrowseButton 을 클릭하여 대체 작업 영역을 신속하게 찾아서 선택합니다.

  4. 다음을 클릭하여 대상 환경 선택 페이지를 엽니다.

1.4. 프로젝트 배포 환경 구성

새 프로젝트를 생성할 때 프로젝트에 런타임 시 필요한 리소스가 있도록 프로젝트의 대상 배포 환경을 지정합니다. 배포 플랫폼과 Camel 버전을 선택해야 합니다. 선택적으로 런타임 구성을 지정할 수 있습니다.

대상 환경 선택 페이지가 열립니다.

  1. Kubernetes/OpenShift 또는 독립 실행형 플랫폼에 프로젝트를 배포할지 여부를 선택합니다.

    NFPcamelVersion

    배포 플랫폼에 Kubernetes/OpenShift 를 선택하면 Cryostat 부팅 런타임 이 자동으로 선택되어 3단계로 건너뛸 수 있습니다.

  2. 배포 플랫폼에 대해 독립 실행형 을 선택하는 경우:

    1. 대상 런타임 환경을 선택합니다.

      • Spring Boot
      • Karaf/Fuse
      • EAP에서 Wildfly/Fuse
    2. Karaf 및 EAP 독립 실행형 런타임 환경의 경우 런타임 구성에 대해 다음 옵션 중 하나를 선택합니다.

      • None 선택한 옵션을 수락합니다(나중에 런타임 구성을 정의할 수 있음).
      • 드롭다운 메뉴에서 기존 런타임 구성을 선택합니다.
      • “새 대상 런타임 생성 (선택 사항)” 에 설명된 대로 새 런타임 구성을 생성합니다.
  3. 새 프로젝트 창의 Camel 버전 선택에서 런타임과 관련된 기본 Camel 버전을 수락하거나 다음을 통해 기본값을 변경합니다.

    • 드롭다운 목록에서 Camel 버전 선택. Fuse Tooling은 나열된 제품화된 버전을 지원합니다.
    • 제품화되지 않은 버전(지원되지 않음)을 실험하려는 경우 다른 Camel 버전을 입력합니다.

      Verify 버튼을 클릭하여 툴링이 지정된 버전에 액세스할 수 있는지 여부를 확인할 수 있습니다. 그렇지 않은 경우 다음 예제와 유사한 알림이 Select a Target Runtime 페이지 헤더에 표시됩니다.

      Camel 확인
      참고

      프로젝트를 생성, 구성 및 저장한 후 Camel 버전을 변경할 수 있습니다. 12장. Camel 버전 변경을 참조하십시오.

  4. 런타임 환경과 새 Fuse Integration 프로젝트를 기반으로 할 Camel 버전을 선택한 후 Next 를 클릭하여 마법사의 고급 프로젝트 설정 페이지를 연 다음 “프로젝트 템플릿 선택” 의 단계를 따릅니다.

1. 새 대상 런타임 생성 (선택 사항)

Karaf 및 EAP 독립 실행형 런타임 환경의 경우 선택적으로 New Fuse Integration Project 마법사에서 새 런타임 구성을 생성할 수 있습니다.

  1. 마법사의 대상 런타임 선택 페이지에서 새로 만들기를 클릭하여 새 서버 런타임 환경 페이지를 엽니다.

    새로운 서버 런타임 환경
  2. Red Hat JBoss Middleware 폴더를 확장한 다음 Red Hat Fuse 런타임 환경을 선택합니다.

    새 로컬 서버 만들기 옵션을 선택하지 않은 상태로 둡니다. 나중에 프로젝트를 게시할 준비가 되면 로컬 서버를 생성할 수 있습니다( 28.1절. “서버 추가”참조).

    참고

    새 로컬 서버 생성 옵션을 선택하면 New Fuse Integration Project 마법사에서 Fuse 서버 런타임을 정의하고 구성하는 추가 단계를 안내합니다( 28.1절. “서버 추가”에 설명된 대로). 그런 다음 프로젝트를 빌드할 때 Fuse Integration 관점의 서버 뷰에 서버 런타임도 추가합니다.

  3. 다음을 클릭하여 서버의 새 서버 런타임 환경 페이지를 엽니다.

    nfpRuntimeDefJBF1
  4. 서버 런타임의 이름 , 홈 디렉터리, 실행 환경을 지정합니다.

    • name Cryostat->-<Accept the default 또는 enter a new name for the runtime environment.
    • 홈 디렉터리 Cryostat-에서 서버 런타임의 설치 디렉토리를 찾아서 선택하려면 찾아보기 를 클릭합니다.

      참고

      서버가 컴퓨터에 설치되어 있지 않은 경우 런타임 링크를 다운로드하여 설치한 다음 사이트의 다운로드 지침에 따라 지금 설치할 수 있습니다. 사이트에 따라 다운로드 프로세스를 계속하기 전에 유효한 인증 정보를 제공해야 할 수 있습니다.

    • 런타임 JRE: 실행 환경 기본값을 수락하거나 드롭다운 목록에서 다른 JavaSE 버전을 선택합니다.

      원하는 버전이 목록에 나타나지 않으면 환경 버튼을 클릭하고 해당 목록에서 버전을 선택합니다. 선택한 JRE 버전이 시스템에 설치되어 있어야 합니다.

      참고

      Fuse 7.x에는 JRE 버전 1.8이 필요합니다.

    • 런타임 JRE: JRE 대체 - 프로젝트에 다른 버전의 Java가 필요한 경우 이 옵션을 사용할 수 있습니다.
  5. 마침 을 클릭하여 New Fuse Integration Project 마법사의 대상 실행 선택 페이지로 돌아갑니다.

    새로 구성된 대상 런타임은 대상 런타임 창의 드롭다운 메뉴에 표시되고 런타임에서 지원하는 Camel 버전이 Camel Version 창에 표시되고 회색으로 표시됩니다.

    Fuse Integration 프로젝트를 생성한 후에는 Camel 버전을 변경할 수 있습니다. 12장. Camel 버전 변경을 참조하십시오.

  6. “프로젝트 템플릿 선택” 에 설명된 대로 프로젝트에 대한 템플릿을 지정하려면 다음을 클릭합니다.

1.5. 프로젝트 템플릿 선택

고급 프로젝트 설정 페이지에는 새 프로젝트의 시작점으로 사용할 수 있는 템플릿 목록이 있습니다. 일반적인 사용 사례를 기반으로 하는 템플릿은 샘플 코드와 데이터를 제공하여 빠르게 시작할 수 있습니다. 사용 가능한 템플릿 목록은 이전 페이지에서 선택한 런타임 환경에 따라 다릅니다. 오른쪽 창에서 해당 설명을 볼 템플릿을 선택합니다.

참고

요구 사항을 충족하는 템플릿이 표시되지 않으면 Where can I find more examples to use as templates? link to open an information dialog with a list of URLs with more examples with your requirements:

nfpTemplateExamples

다음 예제 중 하나를 사용하려면 다음을 수행합니다.

  1. 취소 를 선택하여 New Fuse Integration Project 마법사를 종료합니다.
  2. 나열된 URL 중 하나에서 리포지토리를 복제합니다.
  3. 13장. 기존 Maven 프로젝트 가져오기 에 설명된 대로 예제 프로젝트를 CodeReady Studio로 가져옵니다.
  • OpenShift의 Fuse 에는 Spring XML 구성 파일을 사용하여 Spring Boot에서 Camel 경로를 구성하는 방법을 보여주는 단일 템플릿이 있습니다. 이 템플릿은 Fuse Integration 프로젝트를 생성하며 2.18.1.redhat-000012 보다 최신 버전이 필요합니다.

    이 템플릿은 OpenShift 서버에서 실행되는 프로젝트를 생성하고 Spring DSL만 지원합니다. 이 템플릿 사용에 대한 자세한 내용은 7장. OpenShift에서 Fuse 시작하기 을 참조하십시오.

    nfpTemplateOpenShift
  • Wildfly 또는 Fuse on EAP 의 경우 "Hello"라고 하는 Quarkus 서비스를 호출하는 샘플 Camel 경로를 제공하는 단일 템플릿이 있습니다. 이 템플릿은 Red Hat EAP 서버에서 실행되는 프로젝트를 생성하고 Spring DSL만 지원합니다.

    nfpTemplateEAP
  • Karaf 또는 Fuse on Karaf 의 경우 템플릿을 선택할 수 있습니다. 지원되는 세 가지 DSL(Domain Specific Languages)을 기반으로 스케일톤 Camel 컨텍스트 라우팅 파일을 생성하는 빈 프로젝트를 생성할 수도 있고, 각각 일반적인 사용 사례를 기반으로 사전 정의된 템플릿을 사용할 수 있습니다. 개별 템플릿에서는 모든 DSL 옵션을 지원하지 않을 수 있습니다.

    참고

    Java DSL의 경우 툴링은 툴의 Java 편집기에서 편집할 수 있는 CamelRoute.java 파일을 생성하지만 그래픽 다이어그램을 생성하지는 않습니다.

    • 콘텐츠 기반 라우터 - 특정 위치에서 파일을 읽고 메시지 콘텐츠에 따라 다른 출력 폴더에 라우팅하는 샘플 Camel 경로를 제공합니다.

      이 템플릿은 Red Hat Fuse 서버에서 실행되는 프로젝트를 생성하고 세 가지 DSL을 모두 지원합니다.

    • CXF 코드는 먼저 CXF 웹 서비스 호출에 의해 시작되는 샘플 Camel 경로를 제공합니다.

      이 템플릿은 Red Hat Fuse 서버에서 실행되는 프로젝트를 생성하고 Spring 및 Java DSL만 지원합니다.

      nfpTemplateKaraf
      1. 목록에서 템플릿을 선택합니다.
      2. 완료를 클릭합니다.

        툴링은 프로젝트 빌드를 시작하고 Project Explorer 보기에 추가합니다.

        Fuse Integration 모드가 아직 열려 있지 않은 경우 툴링은 현재로 전환할지 여부를 묻는 메시지를 표시합니다.

        OpenAssociatedPerspective
      3. 를 클릭하여 Fuse Integration 관점에서 새 프로젝트를 엽니다.

        nfpTemplateProjectOpen

        프로젝트가 Project Explorer 보기에 표시됩니다. 기본적으로 프로젝트에는 XML( Apache Camel 컨텍스트) 파일이 포함되어 있습니다.

      4. 캔버스 하단에서 소스 탭을 클릭하여 생성된 Camel 컨텍스트 파일을 확인합니다.

        nfpTemplateCBRsource
참고

프로젝트에 새 Camel 컨텍스트 파일을 추가하려면 11장. 새 Camel XML 파일 생성 을 참조하십시오.

CXF를 사용하는 프로젝트를 빌드할 때 빌드 프로세스가 Java 파일에서 자동으로 작동하여 WSDL 파일을 생성할 수 있습니다. 이렇게 하려면 프로젝트의 .pom 파일에서 java2ws Maven 플러그인을 구성합니다. Apache CXF 개발 가이드, Maven 툴 참조, java2ws 를 참조하십시오.

1.6. Maven 종속성 오류 해결

새 Fuse Integration 프로젝트를 생성한 후 Maven 종속성 오류가 발생할 수 있습니다.

다른 시간에 발생할 수 있지만 프로세스가 완료되기 전에 프로젝트 빌드를 취소하면 더 일반적으로 발생합니다. 이러한 방식으로 프로세스를 중단하면 모든 프로젝트의 종속 항목이 Maven 리포지토리에서 다운로드되지 않는 경우가 많습니다.

Maven 종속성을 다음과 같이 업데이트하여 이러한 종속성 오류를 해결할 수 있습니다.

  1. Project Explorer 보기에서 루트 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. MavenUpdate Project 를 선택합니다.
  3. Maven 프로젝트 업데이트 마법사에서 다음을 수행합니다.

    • 마법사 목록에 둘 이상의 항목이 표시되면 업데이트할 프로젝트를 선택합니다.
    • Force Update of Snapshots/Releases 옵션을 클릭하여 활성화합니다.
  4. OK를 클릭합니다.

    워크벤치의 오른쪽 하단에서 Maven 리포지토리에서 누락된 종속성이 다운로드되면 진행률 상태 표시줄 축소를 볼 수 있습니다.

2장. 경로 편집기에서 라우팅 컨텍스트 편집

The following sections describe how to edit a routing context.

2.1. 경로에 패턴 추가

경로는 경로 컨테이너 노드 내부의 캔버스에 배치되면 노드 라고 하는 연결된 패턴의 시퀀스로 구성됩니다. 전체 경로는 일반적으로 시작 끝점, 처리 노드 문자열 및 하나 이상의 대상 끝점으로 구성됩니다.

캔버스의 Route 컨테이너에 패턴을 추가하면 해당 노드 유형을 나타내는 색상이 사용됩니다.

  • context 파일의 라우팅 요소 및 기타 컨테이너 노드(예: When 및 otherwise EIPs)에 해당하는 Blue 인터페이스와 기타 EIP가 논리를 완료하는 경우 및 기타 EIP에 해당합니다.
  • 경로를 입력하여 데이터를 입력하는 green 인터페이스와 "Consumer" 끝점
  • Orange 나열 - 데이터 전송 경로의 흐름을 변환, 변환, 처리 또는 제어하는 경우
  • 데이터 종료 경로를 출력하는 Purple Cryostat- CryostatProducer 끝점

2.1.1. 절차

경로에 패턴을 추가하려면 다음을 수행합니다.

  1. 화면에서 경로에 추가할 패턴을 찾습니다.
  2. 다음 방법 중 하나를 사용합니다.

    • lets에서 패턴 클릭한 다음 캔버스에서 경로 컨테이너를 클릭합니다.
    • 대상 Route 컨테이너를 통해 패턴을 드래그하여 놓습니다.

      또는 발신 연결이 없는 기존 노드 또는 두 노드 간 기존 연결에 패턴을 추가하여 툴링이 관련된 모든 노드 간 연결을 자동으로 연결하도록 할 수 있습니다.

      툴링은 결과 연결이 유효한지 여부를 확인한 다음 대상에서 패턴을 추가하도록 허용하거나 금지합니다. 유효한 연결의 경우 툴링은 대상이 노드인지 연결 여부에 따라 다르게 작동합니다.

  3. 선택적으로 두 개의 노드를 수동으로 연결할 수 있습니다.

    1. 캔버스의 Route 컨테이너에서 소스 노드를 선택하여 커넥터 화살표를 표시합니다.
    2. 소스 노드의 커넥터 화살표( ConnectorArrow )를 대상 노드로 끌어오고 마우스 버튼을 해제하여 커넥터를 삭제합니다.

      참고

      모든 노드를 연결할 수 있는 것은 아닙니다. 소스 노드를 잘못된 대상 노드에 연결하려고 하면 툴링에 마우스 커서에 연결된 unconfigured co gray 기호가 표시되고 커넥터가 대상 노드를 유지하지 못합니다.

  4. 경로 컨테이너 내부에 패턴을 추가한 후 유효한 연결을 설정할 수 있는 한 경로 컨테이너 내부 또는 캔버스의 다른 경로 컨테이너로 드래그할 수 있습니다. 이동이 다른 유효한 연결을 설정할 수 있는 한 이미 연결된 기존 노드를 재배치할 수도 있습니다.

    엔드포인트를 재배치하는 방법을 보여주는 짧은 동영상의 내용을 보려면 여기를 클릭하십시오.

  5. 파일저장을 선택합니다. 툴링은 완료 여부에 관계없이 컨텍스트 파일에 경로를 저장합니다.

새 패턴은 Route 컨테이너의 캔버스에 표시되고 선택한 노드가 됩니다. 속성 보기에는 편집할 수 있는 새 노드의 속성 목록이 표시됩니다.

2.1.2. 레이아웃 방향 변경

한 노드를 다른 노드에 연결하면 툴링은 경로 편집기의 레이아웃 기본 설정에 따라 레이아웃을 업데이트합니다. 기본값은 Down 입니다.

경로 편집기의 레이아웃 기본 설정에 액세스하려면 다음을 수행합니다.

  • Linux 및 Windows 시스템에서 Windows기본 설정Fuse 툴링편집기다이어그램 편집기의 레이아웃 방향을 선택합니다.
  • OS X에서 CodeReady StudioPreferencesFuse ToolingEditordiagram 편집기의 레이아웃 방향을 선택합니다.

2.2. 패턴 구성

2.2.1. 개요

대부분의 패턴에는 몇 가지 명시적 구성이 필요합니다. 예를 들어 엔드포인트에는 명시적으로 입력한 URI 가 필요합니다.

툴링의 속성 보기는 특정 패턴에서 지원하는 모든 구성 세부 정보를 나열하는 폼을 제공합니다. 속성 보기는 다음과 같은 편의성 기능도 제공합니다.

  • 모든 필수 속성에 값이 있는지 검증
  • 제공된 값이 속성에 대한 올바른 데이터 유형인지 검증
  • 고정된 값 집합이 있는 속성의 드롭다운 목록
  • Apache Camel Spring 구성에서 사용 가능한 Quarkus 참조로 채워지는 드롭다운 목록

2.2.2. 절차

패턴을 구성하려면 다음을 수행합니다.

  1. 캔버스에서 구성할 노드를 선택합니다.

    속성 보기에는 편집할 수 있도록 선택한 노드의 모든 속성이 나열됩니다. EIP의 경우 세부 정보 탭에 모든 패턴의 속성이 나열됩니다.For EIPs, the Details tab lists all of a pattern's properties. 구성 요소 서랍의 구성 요소의 경우 세부 정보 탭에 일반 속성과 값이 필요한 항목이 나열되고 고급 탭에는 함수에 따라 그룹화된 추가 속성이 나열됩니다.

    Documentation 탭은 패턴과 각 속성을 설명합니다.

  2. 속성 보기의 필드를 편집하여 노드를 구성합니다.
  3. 완료되면 메뉴 모음에서 파일저장을 선택하여 작업을 저장합니다.

2.3. 경로에서 패턴 제거

2.3.1. 개요

경로를 개발하고 업데이트할 때 경로 노드 중 하나 이상을 제거해야 할 수 있습니다. 노드의 garbageIcon 아이콘을 사용하면 이 작업을 쉽게 수행할 수 있습니다. 캔버스에서 노드를 삭제하면 경로의 다른 노드와의 모든 연결도 삭제되고 노드가 컨텍스트 파일의 해당 경로 요소에서 제거됩니다.

참고

컨텍스트 메뉴를 열고 Remove 를 선택하여 노드를 제거할 수도 있습니다.

2.3.2. 절차

경로에서 노드를 제거하려면 다음을 수행합니다.

  1. 삭제할 노드를 선택합니다.
  2. garbageIcon 아이콘을 클릭합니다.
  3. 이 요소를 삭제하려는지 확인하는 메시지가 표시되면 Yes 를 클릭합니다.

노드와 모든 연결은 캔버스에서 삭제되고, 노드는 컨텍스트 파일의 해당 경로 요소에서 제거됩니다.

2.4. 라우팅 컨텍스트에 경로 추가

2.4.1. 개요

XML 컨텍스트 파일 내의 camelContext 요소는 라우팅 컨텍스트를 생성합니다. camelContext 요소는 하나 이상의 경로를 포함할 수 있으며, 캔버스에 경로 컨테이너 노드로 표시되는 각 경로는 생성된 camelContext 요소에서 경로 요소에 매핑됩니다.

2.4.2. 절차

camelContext에 다른 경로를 추가하려면 다음을 수행합니다.

  1. 디자인 탭에서 다음 중 하나를 수행합니다.

    • 알렉트의라우팅 서랍 에서 경로 패턴을 클릭한 다음 경로를 배치할 캔버스를 클릭합니다.
    • 서블릿의라우팅 서랍 에서 경로 패턴을 드래그하여 캔버스에 놓습니다.

      속성 보기에는 편집할 수 있는 새 경로의 속성 목록이 표시됩니다.

  2. 속성 보기에서 다음을 입력합니다.

    • 경로의 Id 필드의 새 경로에 대한 ID(예: Route2)

      참고

      툴링은 EIP에 ID를 자동으로 할당하고 캔버스에 드롭된 구성 요소 패턴을 자동으로 할당합니다. 자동 생성된 ID를 자체 ID로 교체하여 프로젝트의 경로를 구분할 수 있습니다.

    • 설명 필드의 경로에 대한 설명
    • 필요에 따라 다른 속성의 값입니다. 필수 속성은 별표(*)로 표시됩니다.
  3. 메뉴 모음에서 파일저장을 선택하여 라우팅 컨텍스트 파일에 대한 변경 사항을 저장합니다.
  4. 여러 경로 간에 전환하려면 Project Explorer 보기에서 프로젝트의 Camel Contexts 폴더에 있는 항목을 클릭하여 캔버스에 표시할 경로를 선택합니다.

    routeEntriesProjectExplorer
  5. 컨텍스트의 모든 경로를 공백으로 표시하려면 Project Explorer 보기에서 컨텍스트 파일 항목을 클릭합니다.
  6. 캔버스에 경로를 추가할 때 툴링에서 생성한 코드를 보려면 소스 탭을 클릭합니다.

    참고

    camelContext 요소 내의 기존 목록에 <route/> 요소를 추가하여 소스 탭에 경로를 추가할 수 있습니다.

2.5. 경로 삭제

2.5.1. 개요

경우에 따라 라우팅 컨텍스트에서 전체 경로를 삭제해야 합니다. 경로 컨테이너의 garbageIcon 아이콘을 사용하면 이 작업을 쉽게 수행할 수 있습니다. 경로를 삭제하면 Route 컨테이너 내부의 모든 노드도 삭제되고 컨텍스트 파일의 해당 경로 요소도 제거됩니다.

참고

Route 컨테이너의 컨텍스트 메뉴를 사용하여 경로를 제거하고 Remove 를 선택할 수도 있습니다.

중요

이 작업을 실행 취소할 수 없습니다.

2.5.2. 절차

경로를 삭제하려면 다음을 수행합니다.

  1. 라우팅 컨텍스트에 경로가 두 개 이상 포함된 경우 먼저 Project Explorer 보기에서 삭제할 경로를 선택합니다.

    routeEntriesProjectExplorer
  2. 캔버스에서 Route 컨테이너의 garbageIcon 아이콘을 클릭합니다.

    routeDelete
  3. 이 요소를 삭제하려는지 확인하는 메시지가 표시되면 Yes 를 클릭합니다.

경로는 캔버스, 컨텍스트 파일 및 Project Explorer 보기에서 제거됩니다.

2.6. 글로벌 끝점, 데이터 형식 또는 빈 추가

2.6.1. 개요

일부 경로는 글로벌 끝점, 글로벌 데이터 형식 또는 글로벌 빈에서 제공하는 공유 구성에 의존합니다. 경로 편집기의 구성 탭을 사용하여 프로젝트의 라우팅 컨텍스트 파일에 글로벌 요소를 추가할 수 있습니다.

라우팅 컨텍스트 파일에 글로벌 요소를 추가하려면 다음을 수행합니다.

  1. 경로 편집기에서 라우팅 컨텍스트 파일을 엽니다.
  2. 경로 편집기 하단에서 구성 탭을 클릭하여 글로벌 구성이 있는 경우 표시됩니다.

    ConfigurationsView
  3. 추가 를 클릭하여 새 글로벌 요소 만들기 대화 상자를 엽니다.

    CnfigsVAddButton

    옵션은 다음과 같습니다.

2.6.2. 글로벌 끝점 추가

  1. 새 전역 요소 만들기 대화 상자에서 끝점을 선택하고 확인을 클릭하여 구성 요소 선택 대화 상자를 엽니다.In the Create a new global element dialog, select Endpoint and click OK to open the Select component dialog.

    CnfigsVSelectCamComponent1
    참고

    기본적으로 구성 요소 선택 대화 상자가 열리고 Show only pallets 구성 요소 옵션이 활성화됩니다. 사용 가능한 모든 구성 요소를 보려면 이 옵션을 선택 해제하십시오.

    참고

    범주별로 그룹화된 옵션은 유형별로 구성 요소를 그룹화합니다.

    CnfigsVSelectCamComponentGrouped
  2. 대화 상자에서 컨텍스트 파일에 추가할 구성 요소를 찾아서 선택한 다음 Id 필드에 ID를 입력합니다.

    CnfigsVCamComponentSelected

    이 예제에서는 JMS 구성 요소가 선택되고 myJMSId 값입니다.

  3. 완료를 클릭합니다.

    CnfigsVmyEndptAdded2

    이제 필요에 따라 속성 보기에서 속성을 설정할 수 있습니다.

    툴링은 [globalEndpt Select] 구성 요소 선택 의 구성 요소의 Id 필드에 입력한 값을 자동으로 입력합니다. 이 예제에서 Camel은 구성 요소의 스키마(이 경우 jms:)로 시작하는 uri (필수) 필드를 빌드하지만 구성 요소의 uri 를 완료하려면 destinationNamedestinationType 을 지정해야 합니다.

    참고

    JMS 구성 요소의 경우 대상 유형은 기본적으로 queue 로 설정됩니다. 이 기본값은 대상 이름 (필수) 필드에 값을 입력할 때까지 세부 정보 페이지의 uri 필드에 표시되지 않습니다.

  4. 구성 요소의 uri를 완료하려면 고급 을 클릭합니다.
  5. 대상 이름 필드에 대상 끝점의 이름(예: Flistener.BAR )을 입력합니다. 대상 유형 필드에 끝점 대상의 유형(예: 큐, 주제 ,temp: queue 또는 temp:topic )을 입력합니다.

    JMSCompAdvanPathProp

    속성 보기의 세부 정보고급 탭에서는 특정 구성 요소를 구성하는 데 사용할 수 있는 모든 속성에 액세스할 수 있습니다.

  6. 소비자(고급) 탭을 클릭합니다.

    JMSCompConsumerAdvanProps2

    속성 로드 및 노출 리스너 세션 속성을 활성화합니다.

  7. 경로 편집기에서 소스 탭으로 전환하여 첫 번째 경로 요소 앞에 툴이 컨텍스트 파일(이 예제에서는 구성된 JMS 끝점)에 추가된 코드를 확인합니다.

    CnfigsEndptSourceView
  8. 완료되면 메뉴 모음에서 파일저장을 선택하여 변경 사항을 저장합니다.

2.6.3. 글로벌 데이터 형식 추가

  1. Create a new global element 대화 상자에서 데이터 형식을 선택하고 OK 를 클릭하여 글로벌 데이터 형식 만들기 대화 상자를 엽니다.

    CnfigsVCreateGlobalDF1

    데이터 형식은 기본적으로 사용 가능한 목록의 맨 위에 있는 형식인 avro 입니다.

  2. 데이터 형식 드롭다운 메뉴를 열고 원하는 형식을 선택합니다(예: xmljson ).
  3. Id 필드에 형식의 이름을 입력합니다(예: myDataFormat).

    CnfigsVCreateGlobalDF2
  4. 완료를 클릭합니다.

    CnfigsVEditGlobalDFprops1
  5. 속성 보기에서 프로젝트에 속성 값을 적절하게 설정합니다. 예를 들면 다음과 같습니다.

    CnfigsVEditGlobalDFprops2
  6. 경로 편집기에서 소스 탭을 클릭하여 툴이 컨텍스트 파일에 추가된 코드를 확인합니다. 이 예에서는 구성된 xmljson 데이터 형식이 첫 번째 route 요소 앞에 있습니다.

    CnfigsVGlobalDFSourceV
  7. 완료되면 메뉴 모음에서 파일저장을 선택하여 변경 사항을 저장합니다.

2.6.4. 글로벌 8080 추가

글로벌VLAN은 경로의 모든 위치에서 참조할 수 있는 라우팅 외부 Ignition 정의를 활성화합니다. 팔레트에서 경로로 Cryostat 구성 요소를 복사하는 경우 Properties 보기의 Ref 드롭다운에서 정의된 글로벌 빈을 찾을 수 있습니다. Cryostat 구성 요소를 참조할 글로벌 8080 을 선택합니다.

글로벌 8080 요소를 추가하려면 다음을 수행합니다.

  1. Create a new global element 창에서 Cryostat를 선택하고 OK 를 클릭하여 Cryostat 정의 대화 상자를 엽니다.

    CnfigsVCreateGlobalBean1
  2. Id 필드에 글로벌 빈의 ID를 입력합니다(예: TransformBean ). ID는 구성에서 고유해야 합니다.
  3. Cryostat 클래스 또는 팩토리 빈을 식별합니다.

    팩토리 빈을 지정하려면 팩토리 클래스를 사용하여 다른 글로벌 빈을 이미 추가해야 합니다. 그런 다음 해당 글로벌 8080을 선택하여 글로벌 Cryostat 팩토리로 선언할 수 있습니다. Quarkus 팩토리 클래스의 인스턴스 중 하나는 런타임에 있습니다. 다른 글로벌 빈은 해당 클래스에서 팩토리 메서드를 호출하여 다른 클래스의 자체 인스턴스를 만들 수 있습니다.

    클래스 필드를 채우려면 다음 중 하나를 수행합니다.

    • 프로젝트에 있거나 참조된 프로젝트에 있는 클래스의 이름을 입력합니다.
    • …​ 을 클릭하여 프로젝트 또는 참조된 프로젝트에 있는 클래스로 이동하여 선택합니다.
    • + 를 클릭하여 새 빈 클래스를 정의하고 글로벌 8080으로 추가합니다.
  4. 추가하려는 8080에 인수가 하나 이상 필요한 경우 각 인수에 대해 Constructor Arguments 섹션에서 다음을 수행합니다.

    1. 추가를 클릭합니다.
    2. 선택적으로 Type 필드에 인수 유형을 입력합니다. 기본값은 java.lang.String 입니다.
    3. 필드에 인수 값을 입력합니다.
    4. OK를 클릭합니다.
  5. 선택적으로 글로벌 빈에 액세스할 수 있는 속성을 하나 이상 지정합니다. Cryo stat 속성 섹션에서 각 속성에 대해 다음을 수행합니다.

    1. 추가를 클릭합니다.
    2. 이름 필드에 속성의 이름을 입력합니다.
    3. 필드에 속성 값을 입력합니다.
    4. OK를 클릭합니다.
  6. 마침 을 클릭하여 글로벌 빈을 구성에 추가합니다. 지정한 글로벌 빈 ID가 구성 탭에 표시됩니다. 예를 들면 다음과 같습니다.

    CnfigsBeanInList
  7. Source 탭으로 전환하여 툴링이 컨텍스트 파일에 추가된 8080 요소를 확인합니다. 예를 들면 다음과 같습니다.

    CnfigsBeanSourceV
  8. 구성 탭을 클릭하여 글로벌 요소 목록으로 돌아가서 글로벌 빈을 선택하여 속성 보기에 표준 속성을 표시합니다. 예를 들면 다음과 같습니다.

    CnfigsBeanProperties
    참고

    글로벌 빈을 추가할 때 지정한 속성을 보거나 편집하려면 Configurations 탭에서 8080을 선택한 다음 편집을 클릭합니다.

  9. 필요에 따라 글로벌VLAN 속성을 설정합니다.

    • depends-on 은 이 글로벌 빈보다 먼저 생성해야 하는 빈을 식별하는 데 사용할 수 있는 문자열입니다. metrics에 종속된 의 ID(이름)를 지정합니다. 예를 들어 TransformBean 을 추가하고 Depends-onChangeCaseBean 으로 설정하면 ChangeCaseBean 을 생성해야 하며 TransformBean 을 생성할 수 있습니다. 빈이 파괴되면 TransformBean 이 먼저 파괴됩니다.
    • factory-method 는 글로벌 8080이 팩토리 클래스인 경우에만 유용합니다. 이 경우 빈이 참조될 때 호출할 정적 팩토리 메서드를 지정하거나 선택합니다.
    • 범위는 싱글톤 또는 프로토타입 입니다. 기본 싱글톤 은 빈이 호출될 때마다 Camel이 동일한 빈 인스턴스를 사용함을 나타냅니다. 빈이 호출될 때마다 Camel이 새 빈 인스턴스를 생성하도록 할 때 프로토타입 을 지정합니다.
    • init-method 를 사용하면 Quarkus를 참조할 때 호출할 빈의 init() 메서드를 지정하거나 선택할 수 있습니다.
    • destroy-method 를 사용하면 빈에 의해 수행된 처리를 수행할 때 호출할 빈의 destory 메서드를 지정하거나 선택할 수 있습니다.
  10. 완료되면 메뉴 모음에서 파일저장을 선택하여 변경 사항을 저장합니다.

2.6.5. 글로벌 요소 삭제

이 절차는 이전에 라우팅 컨텍스트에 추가된 엔드포인트, 데이터 형식 또는 8080을 제거하는 것과 동일합니다.

참고

글로벌 요소를 삭제하기 위해 실행 취소 작업을 수행할 수 없습니다. 구성에 유지하려는 전역 요소를 실수로 삭제하면 컨텍스트 파일을 저장하지 않고 닫아 삭제를 취소할 수 있습니다. 이것이 가능하지 않으면 의도치 않게 삭제된 글로벌 요소를 다시 추가합니다.

  1. 구성 탭에서 삭제할 전역 요소를 선택합니다.

    예를 들어 “글로벌 데이터 형식 추가” 에 추가된 data 형식 myDataFormat 을 삭제한다고 가정합니다.

    CnfigsVDFSelectDelete
  2. 삭제를 클릭합니다.

    글로벌 요소 myDataFormatConfigurations 탭에서 사라집니다.

  3. Source 탭으로 전환하여 툴링이 라우팅 컨텍스트에서 XML 코드를 제거했는지 확인합니다.

    CnfigsDelDFSourceV
  4. 완료되면 메뉴 모음에서 파일저장을 선택하여 변경 사항을 저장합니다.

2.6.6. 글로벌 요소 편집

이 절차는 라우팅 컨텍스트에 추가한 엔드포인트, 데이터 형식 또는 8080의 속성을 수정할지 여부와 동일합니다.

일반적으로 글로벌 요소의 ID를 변경하지 않아야 합니다. 글로벌 요소가 실행 중인 경로에서 이미 사용 중인 경우 ID를 변경하면 글로벌 요소에 대한 참조가 손상될 수 있습니다.

  1. 구성 탭에서 편집할 전역 요소를 선택합니다.

    예를 들어 “글로벌 끝점 추가” 에 추가된 끝점 myJMS 를 편집하려면 다음을 선택합니다.

    CnfigsVEndptEditSelect
  2. 편집을 클릭합니다.

    CnfigsVEndptClickEdit

    속성 뷰에서 필요에 따라 요소의 속성을 수정합니다.In the Properties view, modify the element's properties as needed.

  3. 예를 들어 고급소비자 탭을 열고 Concurrent Consumers 값을 2 로 변경합니다.

    CnfigsEditEndpntConcurConsume2
  4. 경로 편집기에서 소스 탭을 클릭하고 툴에서 속성 concurrentConsumers=2 가 라우팅 컨텍스트에 추가되었는지 확인합니다.

    CnfigsVEndptEditSourceV
  5. 완료되면 메뉴 모음에서 파일저장을 선택하여 변경 사항을 저장합니다.

2.7. 경로 편집기 구성

2.7.1. 개요

Fuse 기본 설정에서는 경로 편집기의 동작 및 사용자 인터페이스에 대한 옵션을 지정할 수 있습니다.

  • EIP(Enterprise Integration Patterns)의 표현식에 사용할 기본 언어
  • 경로를 만들 때 디자인 캔버스에서 패턴이 이동하는 방향 (오른쪽 또는 아래로)
  • 디자인 캔버스가 캔버스의 배경에 그리드 오버레이를 표시하는지 여부입니다.
  • 디자인 캔버스에서 노드에 레이블을 지정하는 방법

2.7.2. 절차

경로 편집기를 구성하려면 다음을 수행합니다.

  1. 편집기 기본 설정 창을 엽니다.

    • Linux 및 Windows 시스템에서 Windows기본 설정Fuse 툴링편집기 를 선택합니다.
    • OS X에서 CodeReady StudioPreferencesFuse ToolingEditor 를 선택합니다.

      PreferencesEditor

  2. EIP(Enterprise Integration Pattern) 구성 요소의 표현식에 사용할 기본 언어를 선택하려면 드롭다운 목록에서 언어를 선택합니다. 기본값은 simple 입니다.
  3. 경로 편집기에서 경로에 패턴을 정렬할 방향을 지정하려면 Down 또는 right 를 선택합니다. 기본값은 Down 입니다.
  4. 캔버스의 배경에 그리드 오버레이를 표시하거나 표시하지 않도록 설정하려면 경로 편집기에 다이어그램 표시 표 옆에 있는 상자를 선택합니다. 기본값은 enabled 입니다.
  5. 경로 편집기의 디자인 탭에서 구성 요소 ID를 라벨로 사용하거나 사용하려면 구성 요소 레이블에 대해 ID 값 사용 확인란을 선택합니다. 기본값은 disabled 입니다.

    이 옵션을 선택하고 구성 요소에 대해 선호하는 레이블을 지정하는 경우(단계 6) ID 값 대신 해당 구성 요소에 선호되는 라벨이 사용됩니다.

  6. 경로 편집기의 디자인 탭에서 매개 변수를 구성 요소의 레이블로 사용하려면(예: 파일 노드 등) 구성 요소의 레이블로 사용하려면 다음을 수행합니다.

    1. Preferred labels 섹션에서 Add 를 클릭합니다. New Preferred Label 대화 상자가 열립니다.

      NewPreferredLabel

    2. 구성 요소를 선택한 다음 구성 요소의 레이블 로 사용할 매개 변수를 선택합니다.
    3. OK를 클릭합니다. 구성 요소 및 매개변수 쌍은 편집기 환경 설정 창에 나열됩니다.

      PreferredLabelsList

      선택적으로 구성 요소 레이블을 편집제거할 수 있습니다.

      참고

      Use ID values for component labels 옵션을 선택하면 Preferred labels 섹션에 나열된 구성 요소를 제외한 모든 구성 요소에 적용됩니다.

  7. 적용 및 닫기 를 클릭하여 편집기 기본 설정에 변경 사항을 적용하고 기본 설정 창을 닫습니다.
참고

편집기 기본 설정 대화 상자로 돌아가서 기본값 복원을 클릭하여 언제든지 경로 편집기 의 원래 기본값을 복원할 수 있습니다.

3장. Rest DSL 구성 요소 보기 및 편집

Apache Camel은 REST 서비스를 정의하는 여러 방법을 지원합니다. 특히 Apache Camel은 REST 구성 요소를 통해 계층화할 수 있고 OpenAPI 2.0 사양 과의 통합을 제공하는 단순하면서도 강력한 API인 REST DSL(Domain Specific Language)을 제공합니다. OpenAPI(이전 Swagger)는 API 서비스에 대한 벤더 중립 및 이식 가능한 오픈 설명 형식입니다.

Camel Rest DSL 사용에 대한 자세한 내용은 Apache Camel 개발 가이드의 " REST 서비스 정의" 장을 참조하십시오.

Fuse Tooling을 사용하면 Camel Context 파일에 있는 Rest DSL 구성 요소를 보고 편집할 수 있습니다.

여기에 설명된 대로 REST API를 OpenAPI 클라이언트에 노출하도록 Fuse Integration 프로젝트를 구성할 수도 있습니다. https://access.redhat.com/articles/4296981.

3.1. Rest DSL 구성 요소의 그래픽 표현 보기

그래픽 모드에서 Camel Context 파일에서 REST DSL 구성 요소를 보려면 다음을 수행합니다.

  1. 경로 편집기에서 Camel 컨텍스트 파일을 엽니다.
  2. REST 탭을 클릭하여 Rest DSL 구성 요소를 확인합니다.

    RESTtab

    REST 구성 섹션에는 이러한 구성 옵션이 표시됩니다.

    • 구성 요소 Cryostat- Cryostat - REST 전송에 사용할 Camel 구성 요소입니다.
    • REST 서비스의 주요 컨텍스트 경로입니다.The leading context-path for the REST services. 웹 애플리케이션이 컨텍스트 경로를 사용하여 배포되는 Servlet과 같은 구성 요소에 이 옵션을 사용할 수 있습니다.
    • 포트가 REST 서비스를 노출하는 포트 번호입니다.
    • 바인딩 모드 Cryostat-WITH JSON 또는 XML 형식 메시지의 바인딩 모드입니다. 가능한 값은 off (기본값), auto json,xml 또는 json_xml 입니다.
    • 호스트 Cryostat- Cryostat REST 서비스를 노출하는 데 사용할 호스트 이름입니다.
  3. REST Operations 섹션에서 연결된 작업(예: GET,POST,PUT, DELETE)을 보려면 REST 요소를 클릭합니다.
  4. REST 요소 또는 REST 작업을 클릭하여 속성 보기에서 해당 속성을 확인합니다.

    RESTproperties

3.2. 그래픽 보기에서 Rest DSL 구성 요소 편집

REST 탭에서 프로젝트의 Camel 컨텍스트 파일에서 REST 요소를 추가, 편집 또는 삭제할 수 있습니다.

  • 새 REST 요소를 추가하려면 다음을 수행합니다.

    1. REST 요소 섹션에서 + 버튼을 클릭합니다. REST 요소가 REST 요소 목록에 추가됩니다.
    2. 속성 보기에서 REST 요소 속성을 편집합니다.

      RESTAddElement2
  • REST 요소에 REST 작업을 추가하려면 다음을 수행합니다.

    1. REST 요소 목록에서 REST 요소를 선택합니다.
    2. REST 작업 섹션에서 + 버튼을 클릭합니다.

      REST 작업 추가 대화 상자가 열립니다.

      RESTAddOperation
    3. ID,URIOperation Type 을 지정합니다. 선택적으로 참조된 경로 ID를 선택합니다.
    4. 완료를 클릭합니다. 새 작업은 선택한 REST 요소에 대한 REST 작업 목록에 표시됩니다.
  • REST 요소 또는 작업을 편집하려면 REST 탭에서 선택한 다음 속성 탭에서 속성 값을 편집합니다.
  • 선택한 REST 요소 또는 작업을 제거하려면 x 버튼을 클릭합니다.

3.3. Rest DSL 소스 코드 보기 및 편집

소스 탭에서 Rest DSL 구성 요소를 보고 편집할 수도 있습니다.

  1. 경로 편집기에서 Camel 컨텍스트 파일을 엽니다.
  2. 경로 편집기의 소스 탭을 클릭한 다음 코드를 편집합니다.

    RESTsourcetab
  3. 선택적으로 REST 탭을 클릭하여 그래픽 보기에서 변경 사항을 확인합니다.
  4. 변경 사항을 저장하려면 파일저장을 선택합니다.

4장. Cryostat 애플리케이션을 RESTful 웹 서비스로 마이그레이션

WSDL-to-Camel Rest 마법사를 사용하여 기존 WSDL을 사용하여 기존 WSDL을 사용하여 기존 Cryostat-WS Cryostat 웹 서비스 구현에서 RESTful 웹 서비스 구현으로 마이그레이션할 수 있습니다. 이 마법사는 Fuse Tooling의 일부로 사용할 수 있으며 Github wsdl2rest 프로젝트에서 사용할 수 있는 wsdl2rest 유틸리티를 기반으로 합니다.

다음과 같은 사양/구성을 지원합니다.

  • 문서/문문(doc/literal)
  • 문서/문문 Wrapped (doc/lit wrap)
  • RPC/literal(rpclit)

4.1. 마법사 워크플로

마법사는 유효한 URL( file:// URL 양식에서) 또는 원격 URL( http 또는 https사용) 및 선택한 Fuse 프로젝트일 수 있는 WSDL 경로를 사용합니다. 마법사에서 생성된 Java 코드의 경로, 생성된 Camel 구성 파일, 생성된 camel 엔드포인트의 대상 주소, 빈 구현 클래스를 제공합니다.

마법사는 프로젝트를 기반으로 대상 Java 및 Camel 경로를 생성합니다. 생성된 Java 코드는 src/main/java 에서 사용할 수 있으며 Spring 또는 블루프린트에 적절한 위치에 있는 Camel 파일(예: src/main/resources/META-INF/spring )을 사용할 수 있습니다.

생성된 클래스를 수정하고 특정 시점으로 구성할 수 있습니다.

4.2. 사전 요구 사항

시작하기 전에 다음 사전 요구 사항을 충족해야 합니다.

  • 기존 Fuse 통합 프로젝트. FileNewFuse Integration Project 마법사를 사용하여 새 프로젝트를 생성할 수 있습니다.
  • WSDL 파일은 URL을 통해 액세스할 수 있습니다. 로컬(file:// url) 또는 원격(http 또는 https)일 수 있습니다.

4.3. 샘플 Cryostat 애플리케이션을 RESTful 웹 서비스로 마이그레이션

마법사를 실행하려면 다음 단계를 따르십시오.

  1. CodeReady Studio의 Project Explorer 보기에서 Fuse 프로젝트를 선택합니다.
  2. Fuse 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 WSDL에서 New → Camel Rest DSL 을 선택합니다.

    생성된 출력용 Select Incoming WSDL 및 Project 가 열립니다. 대상 프로젝트 필드는 Project Explorer에서 선택한 Fuse 프로젝트로 자동으로 미리 채워집니다. 이 프로젝트는 마법사에서 생성하는 아티팩트의 대상입니다.

    WSDL은 p1을 쉬어야 합니다.
  3. WSDL 파일 의 경우 처리를 위한 원래 Cryostat 서비스를 지정합니다.
  4. 다음을 클릭합니다. WSDL-to-REST 처리용 고급 옵션 지정 페이지가 표시됩니다.

    WSDL은 p2를 쉬어야 합니다.
    1. Destination Java Folder 의 경우 CXF 생성 Java 클래스의 위치를 지정합니다.
    2. Destination Camel Folder 의 경우 생성된 Camel Rest DSL 구성 파일의 위치를 지정합니다.

      참고

      생성된 Camel 파일의 경로와 이름은 Camel 프로젝트 유형에 따라 다릅니다.

      • Spring 프로젝트의 경우: src/main/resources/META-INF/rest-camel-context.xml
      • Spring Boot 프로젝트의 경우: src/main/resources/spring/rest-springboot-context.xml
      • 블루프린트 프로젝트의 경우: src/main/resources/OSGI-INF/rest-blueprint-context.xml
    3. 선택적으로 대상 서비스 주소 의 경우 WSDL 바인딩에 지정된 Cryostat 주소를 제공합니다. WSDL에서 참조하는 Cryostat 서비스의 실제 주소와 일치하도록 이 옵션을 변경할 수 있습니다.
    4. 선택적으로 대상 REST 서비스 주소 의 경우 REST 서비스에 액세스하기 위한 URL을 제공합니다. 이 URL은 Rest DSL의 < restConfiguration > 및 < rest > 태그의 설정으로 분리되어 Cryostat 서비스에 매핑된 REST 작업에 대한 전체 URL을 지정합니다.
  5. 완료 를 클릭하여 출력으로 두 개의 파일을 생성합니다.

    • Rest DSL을 사용한 Camel 구성.
    • CXF에서 Java 클래스를 사용하여 Cryostat 서비스를 래핑합니다.

5장. 새 Apache Camel JUnit 테스트 케이스 생성

5.1. 개요

경로를 테스트하는 일반적인 방법은 JUnit을 사용하는 것입니다. 설계 시간 툴링에는 경로에 대한 JUnit 테스트 케이스 생성을 단순화하는 마법사가 포함되어 있습니다. 마법사는 지정한 끝점을 사용하여 테스트에 대한 시작점 코드 및 구성을 생성합니다.

참고

boilerplate JUnit 테스트 케이스를 생성한 후 이를 수정하여 사용자가 만들거나 수정한 경로에 대한 기대치 및 어설션을 추가해야 하므로 이 테스트는 경로에 유효합니다.

5.2. 사전 요구 사항

새 JUnit 테스트 케이스를 생성하기 전에 사전 작업을 수행해야 합니다.

5.3. 삭제 및 기존 JUnit 테스트 케이스

  1. Project Explorer 보기에서 프로젝트의 루트 노드를 확장하여 < root_project>/src/test/java 폴더를 노출합니다.
  2. /src/test/java 폴더에서 JUnit 테스트 케이스 파일을 찾습니다.

    프로젝트가 기반으로 하는 DSL에 따라 JUnit 테스트 케이스 파일의 이름은 BlueprintTest.java 또는 CamelContext CryostatTest.java 입니다.

  3. JUnit 테스트 케이스 .java 파일을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 삭제 를 선택합니다.

    JUnit 테스트 케이스 .java 파일은 Project Explorer 보기에서 사라집니다.

    이제 새 JUnit 테스트 케이스를 생성할 수 있습니다.

5.4. 빌드 경로에 src/test/java 폴더 생성 및 추가

  1. Project Explorer 보기에서 프로젝트의 루트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. 폴더 를 선택하여 새 폴더 리소스 생성 마법사를 엽니다.
  3. 마법사의 프로젝트 트리 창에서 프로젝트의 루트 노드를 확장하고 src 폴더를 선택합니다.

    &lt ;project_root&gt;/srcEnter에 표시되는지 확인하거나 상위 폴더 필드를 선택합니다.

  4. 폴더 이름에 /test/java 를 입력합니다. 이 폴더는 생성한 새 JUnit 테스트 케이스를 저장합니다.
  5. 완료를 클릭합니다.

    Project Explorer 보기에 새 src/test/java 폴더가 src/main/resources 폴더에 표시됩니다. 컨텍스트 메뉴를 열고 빌드 경로를 선택하여 이 폴더가 클래스 경로에 있는지 확인할 수 있습니다. Build Path에서 Remove from Build Path 가 메뉴 옵션인 경우 src/test/java 폴더가 클래스 경로에 있음을 알 수 있습니다.

    이제 새 JUnit 테스트 케이스를 생성할 수 있습니다.

5.5. JUnit 테스트 케이스 생성

경로에 대한 새 JUnit 테스트 케이스를 생성하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트에서 라우팅 컨텍스트 .xml 파일을 선택합니다.
  2. 그림 5.1. “새로운 Camel JUnit 테스트 케이스 마법사” 에 표시된 대로 컨텍스트 메뉴를 마우스 오른쪽 버튼으로 클릭하여 Camel 테스트 케이스 를 선택하여 새 Camel JUnit 테스트 케이스 마법사를 엽니다.

    그림 5.1. 새로운 Camel JUnit 테스트 케이스 마법사

    새 Camel JUnit 테스트 케이스 마법사의 항목 페이지

    또는 메뉴 모음에서 FileNewOther > Fuse > Camel Test Case 를 선택하여 마법사를 열 수 있습니다.

  3. 소스 폴더 에서 테스트 케이스에 대한 소스 코드의 기본 위치를 수락하거나 다른 위치를 입력합니다.

    Browse button 을 클릭하여 위치를 검색할 수 있습니다.

  4. 패키지 에서는 생성된 테스트 코드에 기본 패키지 이름을 사용하거나 다른 패키지 이름을 입력합니다.

    Browse button 을 클릭하여 패키지를 검색할 수 있습니다.

  5. test 아래의 Camel XML 파일에서 테스트할 경로가 포함된 라우팅 컨텍스트 파일의 기본 경로 이름을 수락하거나 다른 경로 이름을 입력합니다.

    Browse button 를 클릭하여 컨텍스트 파일을 검색할 수 있습니다.

  6. 이름 에서 생성된 테스트 클래스의 기본 이름을 사용하거나 다른 이름을 입력합니다.
  7. 생성된 코드에 포함할 메서드 스텁을 선택합니다.
  8. 생성된 코드에 기본 생성된 주석을 포함하려면 주석 생성 상자를 선택합니다.
  9. Next button 을 클릭하여 테스트 끝점 페이지를 엽니다. 예를 들어 그림 5.2. “새로운 Camel JUnit 테스트 케이스 페이지” 는 선택한 경로의 입력 및 출력 파일 끝점을 보여줍니다.

    그림 5.2. 새로운 Camel JUnit 테스트 케이스 페이지

    테스트 끝점 페이지 예
  10. 사용 가능한 엔드포인트 에서 테스트할 끝점을 선택합니다. 선택한 끝점 옆에 있는 확인란을 클릭하여 선택 취소합니다.
  11. Finish button 을 클릭합니다.

    참고

    메시지가 표시되면 빌드 경로에 JUnit을 추가합니다.

테스트의 아티팩트가 프로젝트에 추가되고 src/test/java 아래의 Project Explorer 보기에 표시됩니다. 테스트 케이스를 구현하는 클래스는 Java 편집기에서 열립니다.

6장. Red Hat Fuse Tooling 내에서 경로 실행

툴링을 사용하여 경로를 실행하는 방법은 다음 두 가지가 있습니다.

6.1. 로컬 Camel 컨텍스트로 경로 실행

6.1.1. 개요

Apache Camel 경로를 실행하는 가장 간단한 방법은 로컬 Camel 컨텍스트 입니다. 이 방법을 사용하면 Project Explorer 보기의 컨텍스트 메뉴에서 직접 경로를 시작할 수 있습니다. 컨텍스트 메뉴에서 경로를 실행하면 툴링에서 런타임 프로필이 자동으로 생성됩니다. 경로 실행을 위한 사용자 정의 런타임 프로필을 생성할 수도 있습니다.

경로는 명령줄에서 직접 호출된 것처럼 실행되며 Apache Camel의 임베디드 Spring 컨테이너를 사용합니다. 런타임 프로필을 편집하여 여러 런타임 매개변수를 구성할 수 있습니다.

6.1.2. 절차

경로를 로컬 Camel 컨텍스트로 실행하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 라우팅 컨텍스트 파일을 선택합니다.
  2. 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Run AsLocal Camel Context 를 선택합니다.

    참고

    로컬 Camel 컨텍스트(테스트 제외)를 선택하면 검증 테스트를 수행하지 않고 프로젝트를 실행하도록 툴링이 더 빨라질 수 있습니다.

6.1.3. 결과

콘솔 보기에는 경로 실행에서 생성된 출력이 표시됩니다.

6.2. Maven을 사용하여 경로 실행

6.2.1. 개요

경로가 포함된 프로젝트가 Maven 프로젝트인 경우 m2e 플러그인을 사용하여 경로를 실행할 수 있습니다. 이 옵션을 사용하면 경로가 실행되기 전에 Maven 목표를 실행할 수 있습니다.

6.2.2. 절차

Maven을 사용하여 경로를 실행하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트의 루트를 선택합니다.
  2. 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Run AsMaven build 를 선택합니다.

    1. Maven을 사용하여 프로젝트를 처음 실행하는 경우 구성 편집 및 시작 편집기가 열리므로 Maven 런타임 프로필을 생성할 수 있습니다.

      런타임 프로필을 생성하려면 Maven 탭에서 다음을 수행합니다.

      1. Apache Camel 프로젝트의 경로 디렉터리가 기본 디렉터리: 필드에 표시되는지 확인합니다.

        예를 들어 Linux에서 프로젝트의 루트는 ~/workspace/simple-router 와 유사합니다.

      2. Goals: 필드에 camel:run 을 입력합니다.

        중요

        Java DSL을 사용하여 프로젝트를 생성한 경우 Goals: 필드에 exec:java 를 입력합니다.

      3. 적용을 클릭한 다음 실행을 클릭합니다.
    2. 후속 Maven 실행에서는 실행 사이에 수정하지 않는 한 이 프로필을 사용합니다.

6.2.3. 결과

콘솔 보기에 Maven 실행의 출력이 표시됩니다.

6.3. 런타임 프로필 작업

Red Hat Fuse Tooling은 런타임 프로필의 각 프로젝트의 런타임 환경에 대한 정보를 저장합니다. 런타임 프로필은 호출할 Maven 목표, 사용할 Java 런타임 환경, 설정해야 하는 모든 시스템 변수와 같은 정보를 추적합니다. 프로젝트에는 두 개 이상의 런타임 프로필이 있을 수 있습니다.

6.3.1. 로컬 Camel 컨텍스트 런타임 프로필 편집

6.3.1.1. 개요

로컬 Camel 컨텍스트 런타임 프로필은 경로를 실행하기 위해 Apache Camel을 호출하는 방법을 구성합니다. 로컬 Camel 컨텍스트 런타임 프로필은 경로가 정의된 컨텍스트 파일의 이름, 호출할 기본 이름, JVM에 전달된 명령행 옵션, 사용할 JRE, 사용할 클래스 경로, 설정해야 하는 환경 변수 및 기타 몇 가지 정보를 저장합니다.

로컬 Camel 컨텍스트 런타임 프로파일의 런타임 구성 편집기에는 다음 탭이 포함되어 있습니다.

  • Camel 컨텍스트 파일 밀리초- 새 구성의 이름과 경로가 포함된 라우팅 컨텍스트 파일의 전체 경로를 지정합니다.
  • Cryo stat Cryostat-limitifies Cryostat 연결 세부 정보(예: URI 및 사용자 이름 및 암호(선택 사항)를 사용하여 이 파일에 액세스하는 데 사용할 수 있습니다.
  • 프로젝트의 기본 디렉터리의 정규화된 이름, 기본 디렉터리를 찾기 위한 몇 가지 옵션, 경로를 실행하기 전에 실행하는 데 필요한 모든 목표 및 사용할 Maven 런타임 버전을 지정합니다.
  • JVM을 시작할 때 사용할 JRE 및 명령줄 인수를 지정합니다.
  • 실행이 종료된 후 Maven이 프로젝트의 리소스 파일을 새로 고치는 방법을 지정합니다.
  • 환경이 설정되어야 하는 모든 환경 변수를 지정합니다.
  • Common Cryostat->-<specifies how the profile is stored and the output displayed.

Apache Camel 경로를 Local Camel 컨텍스트로 처음 실행하는 경우 Red Hat Fuse Tooling은 라우팅 컨텍스트 파일에 대해 편집할 필요가 없는 기본 런타임 프로필을 생성합니다.

6.3.1.2. 로컬 Camel 컨텍스트의 런타임 구성 편집기 액세스

  1. Project Explorer 보기에서 편집할 Camel 컨텍스트 파일을 선택하거나 사용자 지정 런타임 프로필을 생성합니다.
  2. 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Run As Run Configurations 를 선택하여 실행 구성 대화 상자를 엽니다.
  3. 컨텍스트 선택 창에서 로컬 Camel 컨텍스트 를 선택한 다음 컨텍스트 선택 창 왼쪽의 상단에 있는 New profile icon 를 클릭합니다.
  4. 이름 필드에 런타임 프로필의 새 이름을 입력합니다.

그림 6.1. 로컬 Camel 컨텍스트의 런타임 구성 편집기

로컬 camel 컨텍스트 런타임 구성 편집기

6.3.1.3. camel 컨텍스트 파일 설정

Camel 컨텍스트 파일 탭에는 하나의 필드가 있습니다. Camel Context file…​. 경로 정의가 포함된 라우팅 컨텍스트 파일의 전체 경로를 입력합니다.

Browse (찾아보기) 버튼은 Open Resource (리소스 열기) 대화 상자에 액세스하여 대상 라우팅 컨텍스트 파일을 쉽게 찾을 수 있습니다. 이 대화 상자는 Apache Camel 경로가 포함된 파일을 검색하도록 미리 구성되어 있습니다.

6.3.1.4. 명령줄 옵션 변경

기본적으로 JVM에 전달되는 유일한 명령줄 옵션은 다음과 같습니다.

-fa context-file

사용자 정의 기본 클래스를 사용하는 경우 다른 옵션을 전달해야 할 수 있습니다. 이렇게 하려면 메인 탭에서 추가 버튼을 클릭하여 매개 변수의 이름과 값을 입력합니다. 매개 변수 추가 대화 상자변수…​ 버튼을 클릭하여 선택할 수 있는 변수 목록을 표시할 수 있습니다.

JVM별 인수를 추가하거나 수정하려면 JRE 탭에서 VM 인수 필드를 편집합니다.

6.3.1.5. 출력이 전송되는 위치 변경

기본적으로 경로 실행에서 생성된 출력은 콘솔 보기로 전송됩니다. 대신 파일로 리디렉션할 수 있습니다.

출력을 파일로 리디렉션하려면 다음을 수행합니다.

  1. Common 탭을 선택합니다.
  2. 표준 입력 및 출력 창에서 출력 파일: 필드 옆에 있는 확인란을 클릭한 다음 출력을 보낼 파일의 경로를 입력합니다.

    Workspace,파일 시스템변수 버튼을 사용하면 출력 파일의 경로를 쉽게 빌드할 수 있습니다.

6.3.2. Maven 런타임 프로필 편집

6.3.2.1. 개요

Maven 런타임 프로필은 Maven이 Apache Camel을 호출하는 방법을 구성합니다. Maven 런타임 프로필은 실행할 Maven 목표, 사용할 Maven 프로필, 사용할 Maven 버전, 사용할 JRE, 사용할 클래스 경로, 설정해야 하는 환경 변수 및 기타 몇 가지 정보를 저장합니다.

중요

Maven을 사용하여 Apache Camel 경로를 처음 실행하는 경우 기본 런타임 프로필을 생성해야 합니다.

Fuse 런타임 프로필의 런타임 구성 편집기에는 다음 탭이 포함되어 있습니다.

  • main Cryostat- = 새 구성의 이름, 프로젝트의 기본 디렉터리의 정규화된 이름, 기본 디렉터리를 찾기 위한 몇 가지 옵션, 경로 실행 전에 실행하는 데 필요한 모든 목표 및 사용할 Maven 런타임 버전을 지정합니다.
  • JVM을 시작할 때 사용할 JRE 및 명령줄 인수를 지정합니다.
  • 실행이 종료된 후 Maven이 프로젝트의 리소스 파일을 새로 고치는 방법을 지정합니다.
  • Source Cryostat->-<ifies the location of any additional sources that the project requires.
  • 환경이 설정되어야 하는 모든 환경 변수를 지정합니다.
  • Common Cryostat->-<specifies how the profile is stored and the output displayed.

6.3.2.2. Maven 런타임 구성 편집기 액세스

  1. Project Explorer 보기에서 편집할 프로젝트의 루트를 선택하거나 사용자 지정 런타임 프로필을 만듭니다.
  2. 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Run As Run Configurations 를 선택하여 실행 구성 대화 상자를 엽니다.
  3. 컨텍스트 선택 창에서 Maven Build 를 선택한 다음 컨텍스트 선택 창 왼쪽 상단에 있는 New profile icon 를 클릭합니다.

그림 6.2. Maven용 런타임 구성 편집기

Maven 런타임 구성 편집기

6.3.2.3. Maven 목표 변경

경로를 실행할 때 가장 일반적으로 사용되는 목표는 camel:run 입니다. 경로를 자체 JVM에서 실행되는 Spring 컨테이너로 로드합니다.

Apache Camel 플러그인은 Spring 컨테이너를 Maven에서 사용하는 동일한 JVM에 로드하는 camel:embedded 목표를 지원합니다. 이로 인해 경로가 더 빨리 부트 스트랩되어야 한다는 이점이 있습니다.

Java DSL을 기반으로 하는 프로젝트는 exec:java 목표를 사용합니다.

POM에 다른 목표를 포함하는 경우 Main 탭에서 Maven Runtime 필드 옆에 있는 Configure…​ 버튼을 클릭하여 사용하는 Maven 목표를 변경할 수 있습니다. 설치 대화 상자에서 < selected_runtime> 설치 필드에 대한 글로벌 설정을 편집합니다.

6.3.2.4. Maven 버전 변경

기본적으로 Eclipse용 Red Hat Fuse Tooling은 Eclipse에 내장된 m2e를 사용합니다. 다른 버전의 Maven을 사용하거나 개발 시스템에 최신 버전이 설치되어 있는 경우 메인 탭의 Maven Runtime 드롭다운 메뉴에서 선택할 수 있습니다.

6.3.2.5. 출력이 전송되는 위치 변경

기본적으로 경로 실행의 출력은 콘솔 보기로 전송됩니다. 대신 파일로 리디렉션할 수 있습니다.

출력을 파일로 리디렉션하려면 다음을 수행합니다.

  1. Common 탭을 선택합니다.
  2. 출력 파일: 필드 옆에 있는 확인란을 클릭한 다음 출력을 보낼 파일의 경로를 입력합니다.

    Workspace,파일 시스템변수 버튼을 사용하면 출력 파일의 경로를 쉽게 빌드할 수 있습니다.

7장. OpenShift에서 Fuse 시작하기

OpenShift의 Fuse( 7.0 이후 Fuse Integration Services의 이름)를 사용하면 OpenShift Container Platform에 Fuse 애플리케이션을 배포할 수 있습니다.

중요

Fuse Integration 프로젝트(OpenShift 프로젝트에서 사용)의 경우 Fuse Tooling을 사용하려면 Red Hat Container Development Kit(CDK) v3을 설치해야 합니다.x. 자세한 내용은 시작 가이드 를 참조하십시오. 이 가이드에 명시된 사전 요구 사항 외에도 Red Hat 계정이 없는 경우 설정해야 합니다. Red Hat Container Development Kit에 제공된 가상 OpenShift 인스턴스를 시작하려면 Red Hat 사용자 이름과 암호가 필요합니다.

Red Hat 고객 포털에 등록하면 쉽게 계정을 얻을 수 있습니다. 흰색 배너의 오른쪽 상단에 있는 Account 를 클릭한 다음 Red Hat 계정 로그인 페이지에서 RH acctRegBut 클릭합니다.

Fuse Tooling을 사용하면 s2i 바이너리 워크플로를 사용하여 Fuse Integration 프로젝트를 개발하고 배포할 수 있습니다. 이 워크플로에서 툴은 로컬로 프로젝트를 빌드하여 이미지 스트림으로 어셈블한 다음 Docker 컨테이너를 빌드하는 데 사용되는 OpenShift로 이미지 스트림을 내보냅니다. Docker 컨테이너가 빌드되면 OpenShift에서 포드에 배포합니다.

중요

Fuse Tooling은 S2I 바이너리 워크플로우에서만 작동하며 Spring Boot 프레임워크를 기반으로 하는 프로젝트에서만 작동합니다.

참고

Fuse Tooling은 원격 OpenShift 서버에 툴링을 사용하여 생성된 Fuse 통합 프로젝트를 배포할 수 있지만 이 장에서는 Red Hat Container Development Kit(CDK) v3을 사용하여 로컬로 설치된 가상 OpenShift 인스턴스에 Fuse Integration 프로젝트를 생성하고 배포하는 방법을 설명합니다.

다음 섹션에서는 첫 번째 Fuse Integration 프로젝트를 생성하고 배포하는 방법을 설명합니다.

참고

Fuse Integration 프로젝트를 로컬 Camel 컨텍스트로 실행하고 6.1절. “로컬 Camel 컨텍스트로 경로 실행” 를 참조한 다음, 라우팅 컨텍스트를 모니터링하고 테스트할 수 있는 Cryostat Navigator 보기에서 연결할 수도 있습니다. Fuse 통합 프로젝트(II 부. 라우팅 컨텍스트 디버깅)에서 Camel 디버거를 실행하여 라우팅 컨텍스트에서 논리 오류를 노출하고 수정할 수도 있습니다.

7.1. Red Hat Container Development Kit 서버 추가

Red Hat Container Development Kit를 서버에 추가하려면 다음을 수행합니다.

  1. 필요한 경우 WindowPerspectiveOpen PerspectiveFuse Integration 을 선택하여 Fuse 통합 관점으로 전환합니다.

    참고

    이 절차에 설명된 뷰가 열려 있지 않은 경우 보기 → 기타를 선택한 다음 열려는 뷰의 이름을 선택하여 열 수 있습니다.

  2. 서버 보기에서 서버를 사용할 수 없는 서버 없음 링크를 클릭합니다. 새 서버 정의 마법사를 열려면 이 링크를 클릭하여 새 서버…​ 생성합니다. 이 링크는 서버 보기에 서버 항목이 없는 경우에만 표시됩니다.

    그렇지 않으면 서버 보기를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 새 → 서버 를 선택하여 새 서버 정의 마법사를 엽니다.

    DefNewSrvCDK
  3. Red Hat JBoss MiddlewareRed Hat Container Development Kit 3.2+ 를 선택합니다.

    다음 기본값을 수락합니다.

    • 서버의 호스트 이름 Cryo stat- localhost
    • 서버 이름 Cryostat- 컨테이너 개발 환경
  4. 다음을 클릭하여 Red Hat Container Development Environment 페이지를 엽니다.
  5. MiniShift Binary 옆에 있는 찾아보기 를 클릭하고 Red Hat Container Development Kit 3.x 를 설치한 위치로 이동한 다음 열기 를 클릭합니다.
  6. 사용자 이름 옆에 있는 추가 를 클릭하여 인증 정보 추가 페이지를 엽니다.
  7. 다음과 같이 인증 정보를 설정합니다.

    • 사용자 이름 - Red Hat 계정에 로그인하는 데 사용하는 이름을 입력합니다.
    • 항상 암호를 입력하라 는 메시지가 표시됩니다(비활성화됨).
    • 암호 Cryostat- 인터페이스와 Red Hat 계정에 로그인하는 데 사용하는 암호를 입력합니다.
  8. OK 를 클릭하여 현재 입력된 Red Hat Container Development Environment 페이지로 돌아갑니다. 예를 들면 다음과 같습니다.

    CDEdefUserFolder3
  9. 완료를 클릭합니다. 컨테이너 개발 환경 3.2 이상 [Stopped, Synchronized]서버 뷰에 나타납니다. 컨테이너 개발 환경 3.2+ 는 CDK 3.x 서버를 추가할 때 기본 서버 이름입니다.

7.2. 컨테이너 개발 환경(CDE) 및 가상 OpenShift 서버 시작

CDE(Container Development Environment)를 시작하면 가상 OpenShift 서버도 시작됩니다. CDE를 중지하면 가상 OpenShift 서버도 중지됩니다.

  1. 서버 보기에서 컨테이너 개발 환경 3 [중지, 동기화] 를 선택한 다음 서버 메뉴 모음에서 run exec 을 클릭합니다.

    콘솔 보기가 열리고 시작 프로세스의 상태가 표시됩니다.

    CDEstartTerminal
    참고

    초기 시작 시 CDE는 신뢰할 수 없는 SSL 인증서를 수락하는지 여부를 요청합니다. 예를 클릭합니다.

    시작 프로세스가 완료되면 Servers 보기가 표시됩니다.

    CDEsrvStartedSyncd
  2. OpenShift Explorer 보기로 전환합니다.

    가상 OpenShift 서버 인스턴스인 developer 도 실행 중입니다.

    OSEopenshift devAutostart

    https://192.168.99.100:8443 은 OpenShift 개발자 웹 콘솔의 URL의 예입니다. 설치에 인스턴스의 URL이 표시됩니다. 자세한 내용은 7.6절. “OpenShift 웹 콘솔에 액세스” 에서 참조하십시오.

7.3. 새 OpenShift 프로젝트 생성

Fuse Integration 프로젝트를 OpenShift에 배포할 때 여기에서 생성한 OpenShift 프로젝트에 게시됩니다.

  1. OpenShift Explorer 보기에서 개발자 항목을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. 프로젝트를 선택하여 새 OpenShift 프로젝트 마법사를 엽니다.
  3. 새 프로젝트의 속성을 다음과 같이 설정합니다.

    • 프로젝트 이름 필드에 가상 OpenShift 서버의 프로젝트 네임스페이스 이름을 입력합니다.

      소문자, 숫자 및 대시만 유효합니다.

    • 표시 이름 필드에 가상 OpenShift 웹 콘솔의 개요 페이지에 표시할 이름을 입력합니다.
    • Description (설명) 필드를 그대로 둡니다.

      예를 들면 다음과 같습니다.

      새 프로젝트
  4. 완료를 클릭합니다.

    새로운 OpenShift 프로젝트(이 예에서는 New FIS Test newtest)가 OpenShift Explorer 탭에서 이 예제에서 developer https://192.168.99.100:8443 에 표시됩니다.

    OSEnewFISprojCreated
    참고

    myproject myproject 는 OpenShift에 포함된 초기 예제 프로젝트입니다.

    OpenShift Explorer 보기에서 New FIS Test newtest 를 선택한 상태에서 속성 보기에 프로젝트의 세부 정보가 표시됩니다. 예를 들면 다음과 같습니다.

    OSEnewFISprojProps
    참고

    OpenShift에 프로젝트를 배포할 때 속성 보기는 OpenShift 웹 콘솔이 수행하는 프로젝트에 대한 동일한 정보를 수집하고 표시합니다.

7.4. 새 Fuse Integration 프로젝트 생성

새 Fuse Integration 프로젝트를 생성하기 전에 스테이징 리포지토리를 활성화해야 합니다. 일부 Maven 아티팩트는 기본 Maven 리포지토리에 없기 때문에 필요합니다. 스테이징 리포지토리를 활성화하려면 환경 설정Fuse 툴링스테이징 리포지토리를 선택합니다.

Fuse Integration 프로젝트를 생성하려면 OpenShift 템플릿에서 Spring Boot를 사용합니다.

  1. Project Explorer 보기에서 컨텍스트 메뉴를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 New → Fuse Integration Project 를 선택하여 마법사의 프로젝트 이름 선택 페이지를 엽니다.

    새로운 Fuse 통합 프로젝트
  2. 프로젝트 이름 필드에 사용 중인 작업 공간에 고유한 이름을 입력합니다(예: myFISproject ).

    다른 옵션의 기본값을 수락합니다.

  3. 다음을 클릭하여 대상 런타임 선택 페이지를 엽니다.

    새 프로젝트 Camel 버전

    대상 런타임(런타임 없음) 및 Camel 버전의 기본값을 그대로 둡니다.

  4. 다음을 클릭하여 고급 프로젝트 설정 페이지를 엽니다.

    고급 프로젝트 설정
  5. Spring Boot - Spring DSL 템플릿을 사용한 단순 로그를 선택합니다.

    고급 프로젝트 템플릿
  6. 완료를 클릭합니다.

    참고

    최초 Fuse Integration 프로젝트에 대해 다운로드한 종속 항목 수로 인해 구축하는 데 시간이 다소 걸릴 수 있습니다.

    Fuse Integration 모드가 아직 열려 있지 않은 경우 Developer Studio에서 지금 열지 여부를 표시하라는 메시지를 표시합니다. 예를 클릭합니다.

빌드가 완료되면 Fuse Integration 화면에 프로젝트가 표시됩니다. 예를 들면 다음과 같습니다.

FIS ProjCreatedFIP

이 시점에서 다음을 수행할 수 있습니다.

7.5. OpenShift에 Fuse Integration 프로젝트 배포

  1. Project Explorer 보기에서 프로젝트의 루트(이 예에서는 myFISproject)를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. Run AsRun Configurations 를 선택하여 실행 구성 마법사를 엽니다.
  3. 사이드바 메뉴에서 OpenShift에 Maven Build → Deploy <projectname >을 선택합니다(이 예제에서는 OpenShift에 myFISproject를 배포)하여 프로젝트의 기본 실행 구성을 엽니다.

    FIS RunCnfgMain

    기본 설정은 Main 탭에 그대로 둡니다.

  4. JRE 탭을 열어 VM 인수에 액세스합니다.

    FIS RunCfgJRE
  5. VM 인수 창에서 -Dkubernetes.namespace=test 인수 값을 생성할 때 OpenShift 프로젝트에 사용한 프로젝트 이름과 일치하도록 변경합니다( 7.3절. “새 OpenShift 프로젝트 생성” 에서OpenShift 프로젝트 이름 ).

    이 예에서는 기본값 testnewtest 로 변경합니다.

    FIS RunCfgVMargsChg

    OpenShift 구성에 따라 다음을 지원하려면 다른 VM 인수를 수정해야 할 수 있습니다.

    • -Dkubernetes.master=https://192.168.99.1:8443

      여러 OpenShift 인스턴스를 실행하거나 원격 인스턴스를 사용하는 경우 배포를 대상으로 하는 OpenShift 인스턴스의 URL을 지정해야 합니다. 위의 URL은 예입니다.

    • -Dkubernetes.trust.certificates=true

      • CDK를 사용하는 경우 이 인수가 필요합니다. true 로 설정된 상태로 둡니다.
      • 유효한 SSL 인증서가 있는 OpenShift 인스턴스를 사용하는 경우 이 인수의 값을 false 로 변경합니다.
  6. 적용을 클릭한 다음 실행을 클릭합니다.

    다운로드할 종속 항목 수로 인해 최초 배포에는 시간이 다소 걸릴 수 있습니다. 컴퓨터 및 인터넷 연결의 속도는 요인에 영향을 미칩니다. 일반적으로 최초 배포를 완료하는 데 25~35분이 걸립니다.

    콘솔 보기에서 배포 프로세스의 진행 상황을 추적할 수 있습니다. 다음 출력에서 *Pushing 이미지 172.30.1 …​... * 프로젝트가 성공적으로 빌드되고 애플리케이션 이미지가 OpenShift로 푸시되고 있으며 Docker 컨테이너를 빌드하는 데 사용됩니다.

    FIS ConLogSuccess1

    배포가 완료되면 콘솔 보기에 BUILD SUCCESS 가 표시됩니다.

    FIS ConLogSuccess2
  7. OpenShift Explorer 보기로 전환하고 New FIS Test newtest:을 선택합니다.

    OSE NewFISTestDeploy1

    속성 보기에서 세부 정보 페이지에 프로젝트의 모든 속성 값이 표시됩니다.

    OSEnewFISprojProps

    다른 탭(빌드 ,빌드 구성,배포,…​)을 열어 프로젝트의 다른 속성을 확인합니다. 속성 보기는 OpenShift 웹 콘솔과 동일한 정보를 제공합니다.

  8. OpenShift Explorer 보기에서 camel-ose-springboot-xml 을 선택하여 속성 보기에서 세부 정보를 확인합니다.

    NFT camxmlPropsDetails

    다른 탭을 스크롤하여 배포 구성의 다른 속성을 확인합니다.

  9. OpenShift Explorer 보기에서 camel-ose-springboot-xml-1-mdmtd 포드 실행 중 을 선택한 다음 속성 보기에서 실행 중인 인스턴스의 세부 정보를 확인합니다.

    NFT ImageStreamPropsDetails
  10. OpenShift Explorer 보기에서 camel-ose-springboot-xml-1-mdmtd 포드 실행을 마우스 오른쪽 버튼으로 클릭한 다음 Pod Logs…​ 을 선택합니다.

    참고

    메시지가 표시되면 설치된 oc 실행 파일의 경로를 입력합니다. Pod 로그를 검색하는 데 필요합니다.

    콘솔 보기가 자동으로 열리고 실행 중인 Pod의 로그를 표시합니다.

    ICMP podLogs Cryostated

    콘솔 뷰 메뉴 모음에서 Close 를 클릭하여 세션을 종료하고 콘솔 출력을 지웁니다.

7.6. OpenShift 웹 콘솔에 액세스

참고

이 정보는 Red Hat Container Development Kit 설치에만 적용됩니다.

OpenShift 웹 콘솔에 액세스하려면 브라우저를 열고 인스턴스 및 시스템에 고유한 OpenShift 서버의 URL을 입력합니다. 예를 들어 브라우저의 주소 필드에 https://192.168.99.100:8443 를 입력합니다.

기본 인증 정보를 사용하여 웹 콘솔에 개발자 또는 관리자로 로그인할 수 있습니다.

  • 기본 개발자 역할

    개발자 사용자는 OpenShift v3 기능을 보여주는 자체 프로젝트 및 제공된 OpenShift 샘플 프로젝트만 볼 수 있습니다. 개발자 사용자는 OpenShift에 배포된 모든 프로젝트를 생성, 편집 및 삭제할 수 있습니다.

    • 사용자 이름 - 개발자
    • 암호 - developer
  • 기본 관리자 역할

    관리자는 OpenShift(CDK)의 모든 프로젝트를 보고 액세스할 수 있습니다. 관리자 사용자는 OpenShift에 배포된 모든 프로젝트를 생성, 편집 및 삭제할 수 있습니다.

    • 사용자 이름 - 관리자
    • 암호 - 관리자

OpenShift 웹 콘솔 사용에 대한 자세한 내용은 시작하기 가이드를 참조하십시오.

8장. Red Hat Fuse SAP Tool Suite 사용

Red Hat Fuse SAP Tool Suite를 사용하면 Camel 경로를 원격 SAP Application Server와 통합할 수 있습니다. 다양한 SAP 구성 요소가 RFC(원격 기능 호출) 및 중간 문서(IDoc) 전송 및 수신을 위해 제공됩니다. SAP Tool Suite는 SAP의 JCo 및 IDoc 클라이언트 라이브러리에 따라 다릅니다. 이러한 라이브러리를 설치하고 사용하려면 SAP Service Marketplace 계정이 있어야 합니다.

8.1. Red Hat Fuse SAP Tool Suite 설치

8.1.1. 개요

Red Hat Fuse SAP Tool Suite는 SAP Application Server 및 Destination 연결을 만들고 관리하는 데 도움이 되는 SAP 연결 구성 편집 대화 상자를 제공합니다. 제품군은 SAP에서 별도로 라이센스하는 타사 JCo 및 IDoc 클라이언트 라이브러리가 필요하므로 기본적으로 설치되지 않습니다.

8.1.2. SAP 툴링에 대한 플랫폼 제한 사항

SAP 툴 모음은 타사 JCo 3.0 및 IDoc 3.0 라이브러리에 따라 다르기 때문에 이러한 라이브러리가 지원하는 플랫폼에만 설치할 수 있습니다. SAP 툴링의 플랫폼 제한 사항에 대한 자세한 내용은 Red Hat Fuse 지원 구성을 참조하십시오.

8.1.3. 사전 요구 사항

Fuse SAP Tool Suite를 설치하려면 먼저 다음 위치에서 JCo 및 IDoc 라이브러리를 다운로드해야 합니다.

이러한 라이브러리를 다운로드하려면 SAP Service Marketplace 계정이 있어야 합니다. operationg 시스템에 적합한 JCo 및 IDoc 라이브러리를 선택해야 합니다. 또한 다음도 참조하십시오.

  • JCo 라이브러리 버전 3.0.11 이상만 지원됩니다.
  • IDoc 라이브러리 버전 3.0.10 이상만 지원됩니다.

이 설치 절차에서는 다운로드한 파일을 아카이브 형식으로 유지할 수 있습니다. 내용을 추출할 필요가 없습니다.

8.1.4. 절차

Fuse SAP Tool Suite를 Red Hat CodeReady Studio에 설치하려면 다음 단계를 수행합니다.

  1. Red Hat CodeReady Studio에서 파일가져오기 를 선택하여 가져오기 마법사를 엽니다.
  2. 가져오기 마법사의 선택 화면에서 FuseInstall Fuse SAP Tool Suite 를 선택한 다음 다음을 클릭합니다.
  3. Install the Red Hat Fuse SAP Tool Suite 화면이 열리고 SAP Service Marketplace에서 JCo 및 IDoc 라이브러리를 다운로드하는 지침이 표시됩니다. 다음을 클릭합니다.
  4. 가져오기로 JCo3 및 IDoc3 아카이브 선택 화면이 열립니다. JCo Archive File 필드 옆에 있는 Browse 버튼을 사용하여 SAP Service Marketplace에서 다운로드한 JCo 아카이브를 선택합니다. JCo 아카이브를 선택한 후 아카이브 버전아카이브 OS 플랫폼 필드가 자동으로 입력되므로 설치 중인 라이브러리가 올바른 버전과 OS 플랫폼이 있는지 확인할 수 있습니다.

    IDoc3 아카이브 파일 필드 옆에 있는 Browse 버튼을 사용하여 SAP Service Marketplace에서 다운로드한 IDoc 아카이브를 선택합니다.

    두 아카이브 파일을 모두 선택한 후 마침 을 클릭합니다.

  5. 설치 마법사(Eclipse 플러그인 설치용)가 자동으로 열립니다. 이 마법사에는 설치할 플러그인에 다음이 표시됩니다.

    • Fuse SAP Tool Suite
    • SAP JCo3 및 IDoc3 라이브러리

      이러한 두 플러그인이 모두 선택되어 있는지 확인합니다. 다음을 클릭합니다.

      참고

      SAP JCo3 및 IDoc3 Libraries 플러그인은 선택한 JCo 및 IDoc 라이브러리에서 동적으로 구성됩니다.

  6. Install Details (세부 정보 설치) 화면을 사용하면 설치할 플러그인을 검토할 수 있습니다. 다음을 클릭합니다.
  7. 라이센스 검토 대화 상자가 열립니다. I accept radiobutton 옵션을 선택한 다음 마침 을 클릭합니다.
  8. 보안 경고 대화 상자가 표시되면 OK 를 클릭하여 경고를 무시하고 설치를 계속합니다.
  9. Eclipse 재시작 대화 상자가 열립니다. OK 를 클릭하여 Eclipse를 다시 시작합니다.

8.2. SAP 대상 연결 생성 및 테스트

8.2.1. 개요

Fuse SAP Tool 제품군에서 SAP 연결 구성 편집 대화 상자를 사용하면 SAP 애플리케이션 대상 연결을 만들고 관리할 수 있습니다. 이 섹션에서는 SAP 대상 연결을 만들고 테스트하는 방법을 설명합니다.

8.2.2. 절차

SAP 대상 연결을 생성하고 테스트하려면 다음 단계를 수행합니다.

  1. 경로 편집기의 글로벌 구성 탭으로 이동하여 추가 를 클릭합니다.

    Create new global element view가 표시됩니다.

  2. SAP 에서 생성하려는 연결 유형을 선택합니다. SAP 연결을 선택하고 확인을 클릭합니다.

    SAP 연결 구성 편집 대화 상자가 표시됩니다. 대상 및 서버 연결 구성을 생성, 편집 및 삭제할 수 있습니다.

  3. 대상 데이터 저장소를 만들려면 대상 추가 탭을 클릭합니다.

    대상 생성 대화 상자가 표시됩니다.

  4. 대상 이름 필드에 대상 이름을 입력하고 확인을 클릭합니다.
  5. 속성 대화 상자에서,

    1. 기본 탭을 클릭하여 SAP 대상에 연결하는 데 필요한 기본 속성을 구성합니다. 이 탭에서 다음 속성 필드를 작성하여 연결을 구성합니다.

      • SAP Application Server
      • SAP 시스템 번호
      • SAP 클라이언트
      • 로그인 사용자
      • 로그온 암호
      • 로그온 언어
    2. 연결 탭을 클릭하여 SAP 대상에 연결하는 데 필요한 값을 추가합니다. 다음 속성 필드를 작성하여 연결을 구성합니다.

      • SAP 시스템 번호
      • SAP 라우터 문자열
      • SAP Application Server
      • SAP Message Server
      • SAP Message Server 포트
      • 게이트웨이 호스트
      • 게이트웨이 포트
      • SAP 시스템 ID
      • SAP Application Server 그룹
    3. Authenticate 탭을 클릭하여 SAP 대상의 유효성을 검사하는 데 필요한 값을 추가합니다. 다음 속성 필드를 작성하여 연결을 구성합니다.

      • SAP 인증 유형
      • SAP 클라이언트
      • 로그인 사용자
      • 로그온 사용자 별칭
      • 로그온 암호
      • SAP SSO 로고 티켓
      • SAP X509 로그인 티켓
      • 로그온 언어
    4. 특수 탭을 클릭합니다. 이 탭에서 다음 속성 필드를 작성하여 연결을 구성합니다.

      • CPIC 추적 선택
      • 초기 코드 페이지
    5. Pool 탭을 클릭하고 다음 속성 필드를 작성하여 연결을 구성합니다.

      • 연결 풀 Peak Limit
      • 연결 풀 용량
      • 연결 풀 만료 시간
      • 연결 풀 만료 기간
      • 연결 풀 최대 클라이언트 시간 가져오기
    6. SNC 탭을 클릭하고 다음 속성 필드를 작성하여 연결을 구성합니다.

      • SNC 파트너 이름
      • SNC 수준의 보안
      • SNC 이름
      • SNC 라이브러리 경로
    7. 리포지토리 탭을 클릭하고 다음 속성 필드를 작성하여 연결을 구성합니다.

      • 리포지토리 대상
      • 리포지토리 로고 사용자
      • 리포지토리 로고 암호

        참고

        이러한 설정에 대한 자세한 내용은 SAP 설명서를 참조하십시오.

  6. 이제 대상 연결을 테스트할 준비가 되었습니다. SAP 연결 구성 편집 대화 상자에서 대상 이름을 마우스 오른쪽 버튼으로 클릭하고 테스트를 선택합니다.

    대상 연결 테스트 대화 상자가 열립니다.

  7. 대화 상자는 현재 대상 구성 설정을 사용하여 SAP 대상 데이터 저장소에 연결합니다. 테스트가 성공하면 상태 영역에 다음 메시지가 표시됩니다.

    Connection test for destination 'YourDestination' succeeded.

    그렇지 않으면 상태 영역에 오류 보고서가 표시됩니다.

  8. 닫기 를 클릭하여 대상 연결 테스트 대화 상자를 닫습니다.
  9. 완료를 클릭합니다. 새로 생성된 SAP 대상 연결이 SAP 아래에 표시됩니다.

8.3. SAP Server 연결 생성 및 테스트

8.3.1. 개요

Fuse SAP Tool 제품군에서 SAP 연결 구성 편집 대화 상자는 SAP Application Server 연결을 만들고 관리하는 데 도움이 됩니다. 이 섹션에서는 SAP Server 연결을 만들고 테스트하는 방법을 설명합니다.

8.3.2. 절차

SAP Server 연결을 만들고 테스트하려면 다음 단계를 수행합니다.

  1. 경로 편집기의 글로벌 구성 탭으로 이동하여 추가 를 클릭합니다.

    Create new global element view가 표시됩니다.

  2. SAP 에서 생성하려는 연결 유형을 선택합니다. SAP 연결을 선택하고 확인을 클릭합니다.

    SAP 연결 구성 편집 대화 상자가 표시됩니다. 대상 및 서버 연결 구성을 생성, 편집 및 삭제할 수 있습니다.

  3. 서버 데이터 저장소를 만들려면 서버 추가 탭을 클릭합니다.

    Create Server (서버 만들기) 대화 상자가 표시됩니다.

  4. 서버 이름에 서버 이름을 입력하고 확인을 클릭합니다.
  5. 속성 대화 상자에서,

    1. 필수 탭을 클릭하여 SAP 서버에 연결하는 데 필요한 기본 속성을 구성합니다. 이 탭에서 다음 속성 필드를 작성하여 연결을 구성합니다.

      • 게이트웨이 호스트
      • 게이트웨이 포트
      • 프로그램 ID
      • 리포지토리 대상
      • 연결 수
    2. 선택 탭을 클릭하고 다음 속성 필드를 작성하여 연결을 구성합니다.

      • SAP 라우터 문자열
      • 작업자 스레드 수
      • 최소 작업자 스레드 수
      • 최대 시작 지연
      • 리포지토리 맵
    3. SNC 탭을 클릭하고 다음 속성 필드를 작성하여 연결을 구성합니다.

      • SNC 수준의 보안
      • SNC 이름
      • SNC 라이브러리 경로

        참고

        설정에 대한 자세한 내용은 SAP 설명서를 참조하십시오.

  6. 이제 서버 연결을 테스트할 준비가 되었습니다. SAP 연결 구성 편집 대화 상자에서 서버 이름을 마우스 오른쪽 버튼으로 클릭하고 테스트를 선택합니다.

    테스트 서버 연결 대화 상자가 열립니다.

  7. 대화 상자는 현재 서버 구성 설정을 사용하여 SAP Server Data Store 에 연결합니다. 테스트가 성공하면 상태 영역에 다음 메시지가 표시됩니다.

    Server state: STARTED
    Server state: ALIVE

    테스트에 실패하면 서버 상태가 DEAD 로 보고됩니다.

  8. Stop (중지)을 클릭하여 Test Sever를 종료합니다.
  9. 닫기 를 클릭하여 서버 연결 테스트 대화 상자를 닫습니다.
  10. 완료를 클릭합니다. 새로 생성된 SAP Server 연결이 SAP 아래에 표시됩니다.

8.4. 대상 및 서버 연결 삭제

8.4.1. 개요

이 섹션에서는 SAP 연결 구성 편집 대화 상자에서 SAP 대상 및 서버 연결을 삭제하는 방법을 설명합니다.

8.4.2. 절차

대상 및 서버 연결을 삭제하려면 다음 단계를 수행합니다.

  1. 경로 편집기의 글로벌 구성 탭으로 이동하여 추가 를 클릭합니다.

    Create new global element view가 표시됩니다.

  2. SAP 에서 SAP 연결을 선택하고 확인을 클릭합니다.

    SAP 연결 구성 편집 대화 상자가 표시됩니다. 대상 및 서버 연결 구성을 생성, 편집 및 삭제할 수 있습니다.

  3. SAP 연결 구성 편집 대화 상자에서 삭제할 대상 및 서버 데이터 저장소를 선택합니다.
  4. 삭제를 클릭합니다. 선택한 연결을 삭제합니다.

    마지막으로 완료 를 클릭합니다. 모든 변경 사항을 저장합니다.

8.5. 새 SAP 끝점 만들기

8.5.1. 개요

경로 편집기에서 구성 요소 팔레트를 사용하여 SAP 연결 구성 편집 대화 상자를 사용하여 경로에 SAP 구성 요소를 추가할 수 있습니다.

참고

SAP 연결 보기를 사용하는 경우 블루프린트 XML 또는 Spring XML 코드에 필수 SAP 연결 구성 데이터를 붙여 넣습니다.

8.5.2. 사전 요구 사항

SAP 연결 구성 대화 상자를 사용하여 SAP 대상 연결 및/또는 서버 연결을 이미 생성해야 합니다.

참고

SAP 연결 보기를 사용하는 경우 이 구성을 적절한 유형(Blueprint XML 또는 Spring XML) 파일로 내보냅니다.

8.5.3. 절차

새 SAP 끝점을 생성하려면 다음 단계를 수행합니다.

  1. 사용할 Fuse 프로젝트와 Camel XML 파일이 이미 있다고 가정합니다( 블루프린트 XML 또는 Spring XML 형식 중 하나일 수 있음).
  2. 경로 편집기에서 Camel XML 파일을 엽니다. Red Hat Fuse SAP Tool Suite를 이미 설치한 경우 경로 편집기에서 구성 요소 팔레트 아래에 SAP 구성 요소를 볼 수 있습니다. 툴 모음에서는 다음과 같은 SAP 구성 요소를 제공합니다.

    • SAP IDoc 대상
    • SAP IDoc 목록 대상
    • SAP IDoc 목록 서버
    • SAP qRFC 대상
    • SAP Queued IDoc 대상
    • SAP Queued IDoc 목록 대상
    • SAP sRFC Destination
    • SAP sRFC Server
    • SAP TRFC 대상
    • SAP TRFC Server

      경로 편집기의 디자인 탭에서 이러한 구성 요소 중 하나를 캔버스로 드래그하여 현재 camelContext 에 새 SAP 엔드포인트를 만듭니다.

      참고

      SAP Netweaver 구성 요소는 Red Hat Fuse SAP Tool Suite에 속하지 않습니다. Apache Camel 프로젝트에서 호스팅됩니다.

  3. 캔버스 하단의 소스 탭을 클릭하여 경로 편집기의 소스 탭으로 전환합니다. 경로의 XML 소스를 볼 수 있습니다.
  4. SAP 끝점 URI를 지정할 때 대상 이름 또는 서버 연결 이름을 URI 형식으로 포함해야 합니다. 예를 들어 sap-srfc-destination 구성 요소에는 다음과 같은 URI 형식이 있습니다.

    sap-srfc-destination:destinationName:rfcName

    특정 대상을 참조하려면 관련 항목 요소의 속성 값을 이 URI에서 destinationName 으로 사용합니다.

9장. 데이터 시작하기

시스템 및 데이터 통합과 관련된 과제 중 하나는 구성 요소 시스템이 종종 서로 다른 데이터 형식으로 작동한다는 것입니다. 수신 시스템에서 인식하는 형식(또는 언어)으로 변환하지 않고 간단히 한 시스템에서 다른 시스템으로 메시지를 보낼 수 없습니다. 데이터 변환은 이 변환에 지정된 용어입니다.

이 장에서는 사전 정의된 Camel 경로에 데이터 변환을 포함하는 방법을 알아봅니다. Camel 경로는 XML 데이터를 생성하는 소스 끝점에서 JSON 데이터를 사용하는 대상 끝점으로 메시지를 전달합니다. 소스의 XML 데이터 형식을 대상의 JSON 데이터 형식에 매핑하는 데이터 변환 구성 요소를 추가하고 정의합니다.

9.1. 데이터 변환을 위한 프로젝트 생성 예

  1. 새 Fuse 통합 프로젝트( 파일 → 새 → Fuse 통합 프로젝트선택)를 생성합니다.

    마법사에 다음 정보를 제공합니다.

    • 프로젝트 이름: starter
    • 배포 플랫폼: 독립 실행형
    • 런타임 환경: Karaf/Fuse
    • Camel 버전: 기본값 사용
    • 템플릿: Empty - 블루프린트 DSL
  2. 준비된 데이터 예제를 https://github.com/FuseByExample/fuse-tooling-tutorials/archive/user-guide-11.1.zip에서 다운로드합니다.
  3. user-guide-11.1.zip 아카이브에서 포함된 파일 3개를 Fuse Integration 프로젝트의 src 디렉터리(starter/src/ data )로 추출합니다.
  4. Project Explorer 보기에서 시작 프로젝트를 확장합니다.
  5. Camel Contextssrc/main/resources/OSGI-INF/blueprint/blueprint.xml 을 두 번 클릭하여 경로 편집기의 설계 탭에서 경로를 엽니다.
  6. 소스 탭을 클릭하여 기본 XML을 확인합니다.
  7. & lt;route id="_route1"/&gt;를 다음 코드로 바꿉니다.

    <route id="_route1">
      <from id="_from1" uri="file:src/data?fileName=abc-order.xml&amp;noop=true"/>
      <setHeader headerName="approvalID" id="_setHeader1">
        <simple>AUTO_OK</simple>
      </setHeader>
      <to id="_to1" uri="file:target/messages?fileName=xyz-order.json"/>
    </route>
  8. 디자인 탭을 클릭하여 경로의 그래픽 표시로 돌아갑니다.

    설명

9.2. Camel 경로에 데이터 변환 노드 추가

  1. In the Cryo stat 에서는 drawer 확장합니다.
  2. 데이터 Cryostat 패턴을 클릭한 다음 캔버스에서 SetHeader _setHeader1To_to1 노드 간의 화살표를 클릭합니다.

    Dozer 파일 경로 필드가 자동으로 입력되어 Cryostat 마법사가 열립니다.

    설명
  3. 나머지 필드를 채우십시오.

    • Cryostat ID 필드에 xml2json 을 입력합니다.
    • 소스 유형 의 경우 드롭다운 메뉴에서 XML 을 선택합니다.
    • 대상 유형의 경우 드롭다운 메뉴에서 JSON 을 선택합니다.
  4. 다음을 클릭합니다.

    원본 데이터의 유형 정의를 제공하기 위해 XML 스키마(기본값) 또는 예제 XML 인스턴스 문서 중 하나를 지정하는 Source Type( XML) 정의 페이지가 열립니다.

    설명
  5. XML 스키마 를 활성화한 상태로 둡니다.
  6. 소스 파일의 경우 소스 데이터의 유형 정의에 사용할 XML 스키마 파일의 위치 또는 XML 인스턴스 파일을 찾아 선택합니다(이 경우 abc-order.xsd).

    XML Cryostat 프리뷰 창에는 XML 구조 의 미리 보기가 표시됩니다.

  7. Element root 필드에 Cryostat Order를 입력합니다.

    툴링은 이 텍스트를 사용하여 매핑할 소스 데이터 항목을 표시하는 창에 레이블을 지정합니다.

    이제 Source Type( XML) 정의 페이지가 다음과 같이 표시됩니다.

    설명
  8. 다음을 클릭하여 대상 유형(JSON) 정의 페이지를 엽니다. 대상 데이터의 유형 정의를 지정하는 위치입니다.

    설명
  9. JSON 인스턴스 문서를 클릭합니다.

    대상 파일 필드에 xyz-order.json 인스턴스 문서의 경로를 입력하거나 찾습니다. JSON structures 프리뷰 창에는 JSON 데이터 구조 의 프리뷰가 표시됩니다.

    설명
  10. 완료를 클릭합니다.

변환 편집기가 열립니다. 여기에서 XML 소스의 데이터 항목을 JSON 대상의 데이터 항목에 매핑할 수 있습니다.

설명

변환 편집기는 세 개의 패널로 구성됩니다.

  • 원본 의 사용 가능한 데이터 항목을 가져옵니다.Gets the available data items of the source.
  • 소스  대상 데이터 항목 간의 매핑을 표시합니다.displays the mappings between the source and target data items.
  • 대상 의 사용 가능한 데이터 항목을 대상의 표시입니다.

또한 편집기의 세 개의 패널 바로 아래에 있는 편집기의 세부 정보 창(첫 번째 매핑이 수행되었기 때문에) 그래픽으로 매핑된 소스 및 대상 데이터 항목에 대한 계층적 상위 상위가 표시됩니다. 예를 들면 다음과 같습니다.

대상 속성 role="italic">custId에 매핑된 소스 속성 customerNum이 있는 세부 정보 창

세부 정보 창을 사용하여 선택한 소스 및 대상 데이터 항목에 대한 매핑을 사용자 지정할 수 있습니다.

9.3. 소스 데이터 항목을 대상 데이터 항목에 매핑

  1. 매핑 패널의 왼쪽 오른쪽에 있는 소스 및 대상 패널의 모든 항목을 확장합니다.

    설명
  2. 원본 패널에서 데이터 항목을 드래그하여 대상 패널의 해당 데이터 항목에 놓습니다.

    예를 들어 Source 패널에서 customerNum 데이터 항목을 드래그하여 대상 패널의 custId 데이터 항목에 놓습니다.

    설명

    매핑은 매핑 패널에 표시되고 세부 정보 창에는 소스대상 데이터 항목의 세부 정보가 모두 표시됩니다.

  3. 모든 기본 매핑을 완료할 때까지 소스 데이터 항목을 해당 대상 데이터 항목으로 드래그 앤 드롭합니다.

    시작 예에서 매핑할 나머지 데이터 항목은 다음과 같습니다.

    소스대상

    orderNum

    orderId

    status

    priority

    id

    itemId

    가격

    비용

    수량

    수량

    참고

    컬렉션을 비컬렉션 데이터 항목에 매핑할 수 있지만 컬렉션을 다른 컬렉션에 매핑할 수는 없습니다.

  4. 소스대상 패널에서 모두 Hide mapped fields icon 를 클릭하여 모든 데이터 항목이 매핑되었는지 여부를 신속하게 확인합니다.

    설명

    매핑되지 않은 데이터 항목만 소스대상 패널에 나열됩니다.

    시작 예에서 매핑되지 않은 나머지 대상 속성은 approvalCodeorigin 입니다.

  5. 블루프린트.xml 탭을 클릭하여 경로의 그래픽 표시로 돌아갑니다.

    DTmapComplete
  6. 파일저장을 클릭합니다.

변환 테스트를 생성한 후 변환 파일에서 JUnit 테스트를 실행할 수 있습니다. 자세한 내용은 9.4절. “변환 테스트 파일 생성 및 JUnit 테스트 실행”의 내용을 참조하십시오. 이 시점에서 이렇게 하면 콘솔 보기에 다음 출력이 표시됩니다.

소스 XML 데이터의 경우:

<?xml version="1.0" encoding="UTF-8"?>
<ABCOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://java.sun.com">
    <header>
        <status>GOLD</status>
        <customer-num>ACME-123</customer-num>
        <order-num>ORDER1</order-num>
    </header>
    <order-items>
        <item id="PICKLE">
            <price>2.25</price>
            <quantity>1000</quantity>
        </item>
        <item id="BANANA">
            <price>1.25</price>
            <quantity>400</quantity>
        </item>
    </order-items>
</ABCOrder>

대상 JSON 데이터의 경우:

{"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","lineItems":[{"itemId":"PICKLE",
"amount":1000,"cost":2.25},{"itemId":"BANANA","amount":400,"cost":1.25

9.4. 변환 테스트 파일 생성 및 JUnit 테스트 실행

  1. Project Explorer 보기에서 시작 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 NewOtherFuse ToolingFuse Cryostat Test를 선택합니다.
  2. 다음을 선택하여 새 테스트 마법사를 엽니다.
  3. 새 구현 테스트 마법사에서 다음 값을 설정합니다.

    필드현재의

    패키지

    Camel 파일 경로

    OSGI-INF/blueprint/blueprint.xml

    변환 ID

    xml2json

  4. 완료를 클릭합니다.
  5. Project Explorer 보기에서 starter/src/test/java/example 로 이동하여 Cryostat Test.java 파일을 엽니다.
  6. 변환 메서드에 다음 코드를 추가합니다.

    startEndpoint.sendBodyAndHeader(readFile("src/data/abc-order.xml"), "approvalID", "AUTO_OK");
  7. 파일저장을 클릭합니다.

    이제 이러한 튜토리얼의 어느 시점에서든 변환 파일에서 JUnit 테스트를 실행할 수 있습니다.

  8. Project Explorer 보기에서 시작 프로젝트를 확장하여 /src/test/java/example/TransformationTest.java 파일을 노출합니다.
  9. 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 Run as JUnit Test 를 선택합니다.

    JUnit Test 창이 열리고 테스트 상태를 표시합니다. 작업 공간이 혼동되는 것을 방지하려면 콘솔 보기 옆에 있는 아래쪽 패널에서 창을 드래그 앤 드롭합니다.

    설명
  10. 콘솔 보기를 열어 로그 출력을 확인합니다.

9.5. 상수 변수를 데이터 항목에 매핑

소스/대상 데이터 항목에 해당 대상/소스 데이터 항목이 없는 경우 상수 변수를 기존 데이터 항목에 매핑할 수 있습니다.

시작 예에서 대상 데이터 항목 origin 에는 해당 소스 데이터 항목이 없습니다. origin 속성을 상수 변수에 매핑하려면 다음을 수행합니다.

  1. 소스 패널에서 변수 보기를 클릭합니다.

    설명
  2. 변수 보기에서 Add a new variable icon 를 클릭하여 새 변수 이름 입력 대화 상자를 엽니다.

    설명
  3. 생성할 변수의 이름을 입력합니다.

    시작 예제는 ORIGIN 을 입력합니다.

  4. OK를 클릭합니다.

    새로 생성된 변수 ORIGINName 열의 변수 보기와 Value 열의 기본값 ORIGIN 에 표시됩니다.

  5. 편집할 기본값을 클릭하고 값을 Web 으로 변경합니다.
  6. Enter 를 누릅니다.
  7. 새 변수 ORIGIN대상 패널의 원본 데이터 항목으로 끌어다 놓습니다.

    설명

    $(ORIGIN) 변수의 새 매핑이 매핑 패널 및 세부 정보 창에 표시됩니다.

  8. Cryostat Test.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 9.4절. “변환 테스트 파일 생성 및 JUnit 테스트 실행”의 내용을 참조하십시오.

    콘솔 뷰에는 JSON 형식의 출력 데이터가 표시됩니다.

    {"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25},
    {"itemId":"BANANA","amount":400,"cost":1.25}]}

9.6. 식을 데이터 항목에 매핑

예를 들어 이 기능을 사용하면 대상 데이터 항목을 Camel 언어 표현식의 동적 평가에 매핑할 수 있습니다.

해당 소스 데이터 항목이 없는 대상 approvalCode 데이터 항목을 사용합니다.

  1. Add a new mapping icon 을 클릭하여 매핑 패널에 빈 변환 맵을 추가합니다.

    설명
  2. 대상 패널에서 approvalCode 데이터 항목을 매핑 패널에서 새로 생성된 매핑의 대상 필드로 끌어서 놓습니다.

    설명

    approvalCode 데이터 항목도 세부 정보 창의 대상 상자에 나타납니다.

  3. 세부 정보 창에서 Cryostat Order 소스 상자에서 drop-down menu access 를 클릭하여 드롭다운 메뉴를 엽니다.

    설명

    메뉴 옵션은 선택한 데이터 항목의 데이터 유형에 따라 다릅니다. 사용 가능한 옵션은 굵게 표시됩니다.

  4. 표현식 집합 을 선택하여 표현식 대화 상자를 엽니다.

    설명
  5. 사용 가능한 언어 목록에서 사용할 표현식 언어를 선택합니다. 사용 가능한 옵션은 데이터 항목의 데이터 유형에 따라 다릅니다.

    시작 예제에서는 헤더를 선택합니다.

  6. 세부 정보 창에서 사용할 표현식의 소스를 선택합니다.

    옵션은 스크립트입니다.

    시작 예제의 경우 값을 클릭한 다음 ApprovalID 를 입력합니다.

  7. OK를 클릭합니다.

    설명

    Mappings 패널과 세부 정보 창에 모두 대상 데이터 항목 approvalCode 의 새 매핑이 표시됩니다.

  8. Cryostat Test.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 9.4절. “변환 테스트 파일 생성 및 JUnit 테스트 실행”의 내용을 참조하십시오.

    콘솔 뷰에는 JSON 형식의 출력 데이터가 표시됩니다.

    {"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25},
    {"itemId":"BANANA","amount":400,"cost":1.25}]}

9.7. 매핑된 데이터 항목에 사용자 정의 변환 추가

대상 시스템의 요구 사항을 충족하지 않을 때 소스 데이터 항목의 형식을 수정해야 할 수 있습니다.

예를 들어 모든 고객 ID를 대괄호로 묶는 대상 시스템의 요구 사항을 충족하려면 다음을 수행합니다.

  1. Mappings 패널에서 customerNum 매핑을 선택하여 세부 정보 창을 채웁니다.

    설명
  2. 세부 정보 창에서 Cryostat Order 소스 상자에서 drop-down menu access 를 클릭하여 드롭다운 메뉴를 엽니다.

    설명
  3. 사용자 지정 변환 추가 를 선택하여 사용자 지정 추가 페이지를 엽니다.

    설명
  4. 클래스 필드 옆에 있는 create new function button 를 클릭하여 새 Java 클래스 생성 마법사를 엽니다.

    설명
  5. 다음 필드를 수정합니다.

    • 패키지 Cryo stat- CryostatEnter .
    • 이름 Cryostat- CryostatEnter MyCustomMapper.
    • 메서드 이름 Cryo stat- CryostatChange는 대괄호매핑 합니다.

      다른 모든 필드는 그대로 둡니다.

  6. 완료를 클릭합니다.

    Add Custom Cryostat 페이지가 열리고 ClassMethod 필드가 자동으로 채워집니다.

    설명
  7. OK 를 클릭하여 Java 편집기에서 MyCustomMapper.java 파일을 엽니다.

    설명
  8. 마지막 행을 변경하려면 대괄호 메서드를 다음과 같이 편집합니다.

    return "[" + input + "]";
  9. transformation.xml 탭을 클릭하여 변환 편집기로 다시 전환합니다.

    설명

    세부 정보 창에는 대괄호 방법이 customerNum 데이터 항목과 연결되어 있음을 보여줍니다.

    대괄호 방법은 대상 시스템으로 전송되기 전에 소스 입력에서 실행됩니다.

  10. Cryostat Test.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 9.4절. “변환 테스트 파일 생성 및 JUnit 테스트 실행”의 내용을 참조하십시오.

    콘솔 뷰에는 JSON 형식의 출력 데이터가 표시됩니다.

    {"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25},
    {"itemId":"BANANA","amount":400,"cost":1.25}]}

9.8. 컬렉션의 데이터 항목에 간단한 데이터 항목을 매핑

이 튜토리얼에서는 Source의 모든 ids를 Target의 itemIds에 매핑하는 기존 매핑을 수정합니다. 새 매핑은 Source의 customerNum 데이터 항목을 Target의 lineItems 컬렉션에 있는 두 번째 항목의 itemId 에 매핑합니다.

이 변경으로 Source의 ids는 Target의 itemIds에 매핑되지 않습니다.

  1. Mappings 패널에서 매핑 id Cryostat- Cryostat> itemId 를 선택하여 세부 정보 창에 매핑을 표시합니다.

    설명
  2. 소스 상자에서 drop-down menu access 를 클릭하여 드롭다운 메뉴를 열고 속성 설정을 선택합니다.

    설명
  3. 속성 선택 페이지에서 헤더 노드를 확장하고 customerNum 을 선택합니다. 확인 을 클릭하여 변경 사항을 저장합니다.

    속성 선택
  4. 이제 세부 정보 창에는 XyzOrderlineItems 필드가 있음을 표시됩니다. lineItems 옆에 있는 토글 버튼을 클릭하여 값을 1 로 늘립니다.

    참고

    인덱스는 0부터 시작하므로 1 의 값은 컬렉션에서 itemId 의 두 번째 인스턴스를 선택합니다.

    설명

    세부 정보 창에는 lineItems 컬렉션의 두 번째 항목의 itemId 에 매핑된 customerNum 이 표시됩니다.

  5. Cryostat Test.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 9.4절. “변환 테스트 파일 생성 및 JUnit 테스트 실행”의 내용을 참조하십시오.

    콘솔 뷰에는 JSON 형식의 출력 데이터가 표시됩니다.

    {"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"amount":1000,"cost":2.25},
    {"itemId":"ACME-123","amount":400,"cost":1.25}]}

9.9. 매핑된 데이터 항목에 기본 제공 함수 추가

기본 제공 문자열 관련 함수를 사용하여 매핑된 데이터 항목에 변환을 적용할 수 있습니다.You can use the built-in string-related functions to apply transformations to mapped data items.

  1. Cryo stat 패널에서 우선순위 매핑 상태를 선택하여 세부 정보 창을 채웁니다.

    설명
  2. 소스 상자에서 drop-down menu access 를 클릭하여 드롭다운 메뉴를 열고 변환 추가 를 선택합니다.

    설명
  3. 변환 창에서 추가를 선택하고 인수 창에서 접미사 값에 대해 -level 을 입력합니다.

    추가 함수는 대상 우선 순위 데이터 항목에 매핑하기 전에 상태 문자열의 끝에 지정된 접미사를 추가합니다.

    설명
  4. OK를 클릭합니다.

    설명

    기본적으로 세부 정보 창에는 사용자 친화적인 형식으로 상태 데이터 항목에 추가 함수를 추가하는 결과가 표시됩니다. 소스 상자에서 대부분의 drop-down menu access 를 클릭하고 표준 형식 표시를 선택하여 이 형식을 변경할 수 있습니다.

    설명
  5. Cryostat Test.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 9.4절. “변환 테스트 파일 생성 및 JUnit 테스트 실행”의 내용을 참조하십시오.

    콘솔 뷰에는 JSON 형식의 출력 데이터가 표시됩니다.

    {"custId":"[ACME-123]","priority":"GOLD-level","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"amount":1000,"cost":2.25},{"itemId":"ACME-123",
    "amount":400,"cost":1.25}]}

9.10. Red Hat Fuse 서버에 데이터 변환과 함께 Fuse Integration 프로젝트 게시

데이터 변환 프로젝트를 Fuse 서버에 게시하기 전에( 29장. Fuse Integration Projects를 서버에 게시참조) Fuse 런타임에 다음 기능을 설치해야 합니다.

  • camel-dozer
  • camel-jackson
  • camel-jaxb

Fuse 런타임에 필요한 기능을 설치하려면 다음을 수행합니다.

  1. 아직 없는 경우 Fuse Integration 관점으로 전환합니다.
  2. 필요한 경우 Fuse 서버를 서버 목록에 추가합니다 ( 28.1절. “서버 추가”참조).
  3. Fuse Server를 시작하고( 28.2절. “서버 시작”참조) JBoss Fuse 쉘이 터미널 보기에 표시될 때까지 기다립니다.
  4. 각 필수 camel- 기능에 대해 JBossFuse:admin@root> 프롬프트 유형에서 다음을 수행합니다.

    features:install camel-<featureName>

    여기서 featureNamedozer,jackson 또는 jaxb 중 하나입니다.

  5. 각 기능이 성공적으로 설치되었는지 확인하려면 JBossFuse:admin@root > 프롬프트 유형에서 다음을 수행합니다.

    features:list --ordered --installed

    출력 목록에 방금 설치한 camel 기능이 표시되어야 합니다.

    DTCamFeatsInstalled

10장. Fuse Online 통합을 위한 확장 개발

Fuse Online은 애플리케이션 통합을 위한 웹 인터페이스를 제공하는 Red Hat Fuse 기능입니다. 비즈니스 전문가가 코드를 작성하지 않고 Fuse Online을 사용하여 애플리케이션에 연결하고 선택적으로 다른 애플리케이션에 대한 연결 간 데이터 작업을 수행할 수 있습니다. Fuse Online에서 통합자가 필요로 하는 기능을 제공하지 않는 경우 개발자는 필요한 동작을 정의하는 확장을 생성할 수 있습니다.

Fuse Tooling을 사용하여 Fuse Online에서 사용할 수 있는 기능을 제공하는 확장을 개발할 수 있습니다. 확장 기능은 다음을 정의합니다.

  • 통합의 연결 간 데이터에서 작동하는 하나 이상의 사용자 지정 단계

    또는

  • 하나의 사용자 정의 커넥터

Fuse Online에서 커넥터 는 데이터를 얻거나 데이터를 전송할 수 있는 특정 애플리케이션을 나타냅니다. 각 커넥터는 특정 애플리케이션에 대한 연결을 생성하기 위한 템플릿입니다. 예를 들어 Cryostat 커넥터는 Cryostat에 대한 연결을 생성하기 위한 템플릿입니다. Fuse Online에서 Fuse Online 사용자에게 필요한 커넥터를 제공하지 않으면 사용자 지정 커넥터를 정의하는 확장을 개발할 수 있습니다.

Fuse Online에서 통합의 연결 간에 발생하는 데이터 작업을 단계 라고 합니다. Fuse Online에서는 데이터 필터링 및 매핑과 같은 작업을 위한 단계를 제공합니다. Fuse Online 기본 제공 단계에서 제공하지 않는 방법 간의 데이터 작업을 위해 하나 이상의 사용자 지정 단계를 정의하는 Fuse Online 확장을 개발할 수 있습니다.

참고

선택한 IDE에서 확장을 개발하는 것이 좋습니다. Fuse Tooling 또는 다른 IDE를 사용하는지 여부는 전적으로 개인 선호도의 문제입니다. 모든 IDE에서 확장을 개발하는 방법에 대한 정보는 Fuse Online을 사용하여 애플리케이션 통합에 있습니다.

10.1. 작업 개요

Fuse Online 확장을 개발하는 작업에 대한 개요는 다음과 같습니다.

  1. Red Hat CodeReady Studio에서 Fuse Online 확장 프로젝트를 생성하고 확장 유형으로 Custom Connector 또는 Custom Step 을 선택합니다.
  2. 확장 유형에 따라 확장에 대한 코드를 작성합니다.

    • Custom Connector: 기본 Camel 구성 요소, 커넥터 아이콘, 글로벌 커넥터 속성 및 커넥터 작업을 정의합니다.
    • 사용자 지정 단계: 경로를 추가하고, 작업을 정의하고, 종속성을 지정합니다.
  3. .jar 파일을 빌드합니다.
  4. Fuse Online 사용자에게 .jar 파일을 제공합니다.

Fuse Online 사용자는 .jar 파일을 Fuse Online에 업로드하므로 사용자 지정 커넥터 또는 사용자 지정 단계를 사용할 수 있습니다. Fuse Online 및 통합을 생성하는 방법에 대한 자세한 내용은 Fuse Online을 사용한 애플리케이션 통합을 참조하십시오.

10.2. 사전 요구 사항

시작하기 전에 다음과 같은 정보와 지식이 필요합니다.

  • Fuse Online 사용자 지정 커넥터 또는 단계( Fuse Online 사용자)의 필수 기능에 대한 설명입니다.
  • 확장을 위한 Fuse Online 버전 번호입니다.
  • 사용자 지정 커넥터의 경우 PNG 또는 SVG 형식의 아이콘 이미지 파일입니다. 통합 흐름이 표시되면 Fuse Online에서 이 아이콘을 사용합니다. 아이콘을 제공하지 않으면 확장자가 포함된 .jar가 업로드될 때 Fuse Online에서 하나를 생성합니다.
  • 다음을 숙지해야 합니다.

    • Fuse Online
    • Spring Boot XML 또는 Java
    • Apache Camel 경로(경로 기반 단계 확장을 생성하려는 경우)
    • JSON
    • Maven

10.3. 사용자 정의 커넥터 생성

Fuse Online에서 사용자 지정 커넥터는 하나 이상의 연결 구성 매개 변수, 하나 이상의 연결 작업 및 각 작업에 대한 선택적 구성 매개 변수로 구성됩니다.

다음은 사용자 정의 커넥터를 개발하는 작업에 대한 개요입니다.

  1. Red Hat CodeReady Studio에서 Fuse Online 확장 프로젝트를 생성하고 확장 유형으로 Custom Connector 를 선택합니다.
  2. 확장에 대한 코드를 작성합니다. 기본 Camel 구성 요소, 커넥터 아이콘, 글로벌 커넥터 속성 및 커넥터 작업을 정의합니다.

10.3.1. 사용자 지정 커넥터를 위한 Fuse Online Extension 프로젝트 생성

Fuse Tooling Fuse Online 확장 프로젝트는 사용자 지정 커넥터의 시작점을 제공합니다.

Fuse Tooling Fuse Online 확장 프로젝트를 만들려면 다음 단계를 따르십시오.

  1. Red Hat CodeReady Studio에서 프로젝트Red Hat FuseFuse 온라인 확장 프로젝트를 선택합니다.

    New Fuse Online Extension Project 마법사가 열립니다.

    FuseOnlineExtWiz page1
  2. 프로젝트 이름과 위치를 입력한 다음 다음을 클릭합니다.

    FuseOnlineExtWiz page2
  3. Fuse Online 버전을 선택합니다.
  4. 다음 확장 세부 정보를 지정합니다.

    • 사용자가 정의하고 Fuse Online 환경에서 고유합니다. Fuse Online 사용자가 .jar 파일을 가져올 때 이 값은 Fuse Online에서 확인할 수 있습니다.
    • 확장명 의 이름입니다.The name of the extension. 이 값은 Fuse Online에서 확장 이름으로 표시됩니다. Fuse Online에서 사용자 지정확장 탭에서 사용자는 Fuse Online에 업로드된 확장 기능 및 이름 및 설명 목록을 볼 수 있습니다.
    • description - extension content에 대한 선택적 설명입니다.
    • 버전 Cryostat- Cryostat 확장의 버전입니다. 예를 들어 이것이 초기 버전인 경우 1.0 을 입력할 수 있습니다. 버전을 업데이트하는 경우 1.1 또는 2.0 을 입력할 수 있습니다.
  5. 생성할 Fuse Online 확장 유형에 대해 Custom Connector 를 선택합니다.

    FuseOnlineExtWiz 커넥터
  6. 완료를 클릭합니다.

새 프로젝트가 Red Hat CodeReady Studio Project Explorer 보기에 나타납니다. 사용자 지정 커넥터 확장을 위한 다음 파일이 포함되어 있습니다.

  • src/main/resources/META-INF/syndesis 폴더에서:

    • 설명자 파일: syndesis-extension-definition.json

      편집한 파일입니다. * 최상위 글로벌 속성, 커넥터 작업 및 작업 속성을 추가합니다. * 확장 ID, 이름, 버전 또는 설명 값을 변경합니다.

    • 기본 아이콘 이미지 파일: icon.png

      선택적으로 이 파일을 자체 아이콘 이미지(PNG 또는 SVG) 파일로 교체할 수 있습니다.

  • Maven 프로젝트 오브젝트 모델 파일: pom.xml

    이 파일에는 Maven에서 기본 확장 종속 항목을 포함하여 프로젝트를 빌드하는 데 사용하는 프로젝트 및 구성 세부 정보에 대한 정보가 포함되어 있습니다. 이 파일을 편집하여 사용자 지정 종속 항목을 추가합니다. Red Hat에서 제공하는 모든 종속성 범위는 다음과 같습니다.

    <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <scope>provided</scope>
    </dependency>

10.3.2. 사용자 정의 커넥터를 위한 코드 작성

Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 커넥터 요소를 정의하는 코드를 작성합니다. 표 10.1. “사용자 정의 커넥터 요소” 표는 Fuse Tooling에서 생성하는 사용자 정의 커넥터의 요소가 Fuse Online의 요소에 해당하는 방식을 보여줍니다.

표 10.1. 사용자 정의 커넥터 요소

Fuse Tooling 요소Fuse Online 요소설명

전역(상위 수준) 속성

연결 구성 매개변수

Fuse Online 사용자가 이 커넥터에서 연결을 생성할 때 사용자는 이 속성의 값을 연결 구성의 일부로 지정합니다.

동작

연결 작업

Fuse Online에서 이 커넥터로 만든 연결을 위해 Fuse Online 사용자는 이러한 작업 중 하나를 선택합니다.

작업에 정의된 속성

작업 구성 매개변수

Fuse Online 사용자가 연결이 수행하는 작업을 구성할 때 Fuse Online 사용자는 작업 구성의 일부로 이 속성에 대한 값을 지정합니다.

Fuse Online용 사용자 정의 커넥터를 구현하는 코드를 작성하려면 다음을 수행합니다.

  1. 편집기 보기에서 syndesis-extension-definition.json 파일을 열고 전역 속성을 정의하는 코드, 사용자 지정 커넥터가 수행할 수 있는 동작 및 각 작업의 속성을 작성합니다.

    전역 속성은 Fuse Online의 연결 구성 매개변수에 해당합니다. 각 action 속성은 Fuse Online 연결 작업 구성 매개변수에 해당합니다. Fuse Online에서 사용자가 사용자 지정 커넥터를 선택하면 Fuse Online에서 각 연결 구성 매개 변수의 값을 입력하라는 메시지를 표시합니다. 사용자 지정 커넥터는 OAuth 프로토콜을 사용하는 애플리케이션에 사용할 수 있습니다. 이 경우 OAuth 클라이언트 ID에 대한 글로벌 속성과 OAuth 클라이언트 시크릿에 대한 다른 글로벌 속성을 지정해야 합니다. Fuse Online 사용자는 이 커넥터에서 생성된 연결에 대해 이러한 매개변수 값을 지정해야 합니다.

    커넥터 작업은 기본 Camel 구성 요소 체계를 선언합니다.

    New Fuse Online Extension Project 마법사에서 제공하는 예제에서는 Telegram Camel 구성 요소 체계를 사용합니다.

    {
      "schemaVersion" : "v1",
      "name" : "Example Fuse Online Extension",
      "extensionId" : "fuse.online.extension.example",
      "version" : "1.0.0",
      "actions" : [ {
        "id" : "io.syndesis:telegram-chat-from-action",
        "name" : "Chat Messages",
        "description" : "Receive all messages sent to the chat bot",
        "descriptor" : {
          "componentScheme" : "telegram",
          "inputDataShape" : {
            "kind" : "none"
          },
          "outputDataShape" : {
            "kind" : "java",
            "type" : "org.apache.camel.component.telegram.model.IncomingMessage"
          },
          "configuredProperties" : {
            "type" : "bots"
          }
        },
        "actionType" : "connector",
        "pattern" : "From"
      }, {
        "id" : "io.syndesis:telegram-chat-to-action",
        "name" : "Send a chat Messages",
        "description" : "Send messages to the chat (through the bot).",
        "descriptor" : {
          "componentScheme" : "telegram",
          "inputDataShape" : {
            "kind" : "java",
            "type" : "java.lang.String"
          },
          "outputDataShape" : {
            "kind" : "none"
          },
          "propertyDefinitionSteps" : [ {
            "description" : "Chat id",
            "name" : "chatId",
            "properties" : {
              "chatId" : {
                "kind" : "parameter",
                "displayName" : "Chat Id",
                "type" : "string",
                "javaType" : "String",
                "description" : "The telegram's Chat Id, if not set will use CamelTelegramChatId from the incoming exchange."
              }
            }
          } ],
          "configuredProperties" : {
            "type" : "bots"
          }
        },
        "actionType" : "connector",
        "pattern" : "To"
      } ],
      "properties" : {
        "authorizationToken" : {
          "kind" : "property",
          "displayName" : "Authorization Token",
          "group" : "security",
          "label" : "security",
          "required" : true,
          "type" : "string",
          "javaType" : "java.lang.String",
          "secret" : true,
          "description" : "Telegram Bot Authorization Token"
        }
      }
    }
  2. 사용자 정의 커넥터에 추가 종속 항목이 필요한 경우 프로젝트의 pom.xml 파일에 추가합니다. 종속 항목의 기본 범위는 runtime입니다. Red Hat에서 제공하는 종속성을 추가하는 경우 해당 범위를 제공된 대로 정의합니다. 예를 들면 다음과 같습니다.

    <dependencies>
        <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-telegram</artifactId>
              <scope>provided</scope>
        </dependency>
          </dependencies>

사용자 정의 커넥터의 코드 작성이 완료되면 10.5절. “Fuse Online 확장 JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.

10.4. 사용자 정의 단계 생성

Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 단계를 정의하는 코드를 작성합니다. 단일 확장 내에서 두 개 이상의 사용자 지정 단계를 정의할 수 있으며 Camel 경로 또는 Java 빈을 사용하여 각 사용자 지정 단계를 정의할 수 있습니다.

10.4.1. 사용자 지정 단계를 위한 Fuse Online Extension 프로젝트 생성

Fuse Tooling Fuse Online 확장 프로젝트를 만들려면 다음 단계를 따르십시오.

  1. Red Hat CodeReady Studio에서 프로젝트Red Hat FuseFuse 온라인 확장 프로젝트를 선택합니다.

    New Fuse Online Extension Project 마법사가 열립니다.

    FuseOnlineExtWiz page1
  2. 프로젝트 이름과 위치를 입력한 다음 다음을 클릭합니다.

    FuseOnlineExtWiz page2
  3. Fuse Online 버전을 선택합니다.
  4. 다음 확장 세부 정보를 지정합니다.

    • 사용자가 정의하고 Fuse Online 환경에서 고유합니다. Fuse Online 사용자가 .jar 파일을 가져올 때 이 값은 Fuse Online에서 확인할 수 있습니다.
    • 확장명 의 이름입니다.The name of the extension. 이 값은 Fuse Online에서 확장 이름으로 표시됩니다. Fuse Online에서 사용자 지정확장 탭에서 사용자는 Fuse Online에 업로드된 확장 기능 및 이름 및 설명 목록을 볼 수 있습니다.
    • description - extension content에 대한 선택적 설명입니다.
    • 버전 Cryostat- Cryostat 확장의 버전입니다. 예를 들어 이것이 초기 버전인 경우 1.0 을 입력할 수 있습니다. 버전을 업데이트하는 경우 1.1 또는 2.0 을 입력할 수 있습니다.
  5. 생성할 Fuse Online 확장 유형에 대해 사용자 정의 단계를 선택합니다.
  6. 사용자 정의 단계의 템플릿을 선택합니다.

    FuseOnlineExtWiz step
    • Camel 경로 Cryostat- sample Camel 경로를 제공합니다.
    • Java Cryo stat - 샘플 Java 8080을 제공합니다.

      참고

      선택한 템플릿은 프로젝트의 시작점을 제공합니다. Camel 경로 및 동일한 확장 내의 Java 빈을 기반으로 하나 이상의 사용자 지정 단계를 생성하려면 템플릿 중 하나로 시작한 다음 다른 유형의 사용자 지정 단계에 필요한 파일 및 종속 항목을 추가합니다.

  7. 완료를 클릭합니다.

새 프로젝트가 Red Hat CodeReady Studio Project Explorer 보기에 나타납니다. 사용자 정의 단계에서 선택한 템플릿에 따라 다음 파일이 포함됩니다.

  • src/main/resources/META-INF/syndesis 폴더에서:

    • 설명자 파일: syndesis-extension-definition.json

      편집한 파일입니다: * 하나 이상의 작업을 추가합니다. '.json 'file의 작업은 Fuse Online에서 사용자 지정 단계가 됩니다. 작업 요소에서 '.json 'file의 속성은 Fuse Online의 단계 구성 매개 변수가 됩니다. * 확장 ID, 이름, 버전 또는 설명 값을 변경합니다.

    • Camel 경로 템플릿의 경우 Camel 컨텍스트 파일: extensions/log-body-action.xml

      이 파일에는 로그 구성 요소가 있는 샘플 경로가 포함되어 있습니다. 이 파일에서 Camel 경로를 사용자 지정합니다.

    • Java 8080 템플릿의 경우 Java file: extensions/extension.java

      이 파일에는 샘플 Cryostat 기반 로깅 확장자가 포함되어 있습니다.

  • Maven 프로젝트 오브젝트 모델 파일: pom.xml

    이 파일에는 Maven에서 기본 확장 종속 항목을 포함하여 프로젝트를 빌드하는 데 사용하는 프로젝트 및 구성 세부 정보에 대한 정보가 포함되어 있습니다. 이 파일을 편집하여 사용자 지정 종속 항목을 추가합니다. Red Hat에서 제공하는 모든 종속성 범위는 다음과 같습니다.

    <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <scope>provided</scope>
    </dependency>

10.4.2. 사용자 정의 단계에 대한 코드 작성

Fuse Online 확장 프로젝트를 생성한 후 Fuse Online 사용자가 제공하는 필수 기능에 대한 설명을 기반으로 사용자 지정 단계를 정의하는 코드를 작성합니다.

표 10.2. “사용자 정의 단계 요소” Fuse Tooling에서 만든 사용자 지정 단계의 요소가 Fuse Online의 요소에 해당하는 방식을 보여줍니다.

표 10.2. 사용자 정의 단계 요소

Fuse Tooling 요소Fuse Online 요소설명

동작

사용자 정의 단계

Fuse Online에서 사용자가 단계 확장을 가져온 후 사용자 지정 단계가 단계 선택 페이지에 나타납니다.

작업에 정의된 속성

사용자 정의 단계 구성 매개변수

Fuse Online에서 사용자가 사용자 지정 단계를 선택하면 Fuse Online에서 구성 매개 변수 값을 입력하라는 메시지를 표시합니다.

Fuse Online에 대한 사용자 지정 단계를 구현하는 코드를 작성하려면 다음을 수행합니다.

  1. Camel 경로 기반 단계의 경우 extension.xml 파일에서 확장의 목적을 처리하는 경로를 생성합니다. 각 경로의 진입점은 2단계에서 설명한 대로 syndesis-extension-definition.json 파일에 정의된 진입점과 일치해야 합니다.

    Java 8080 기반 단계의 경우 java 파일을 편집합니다.

  2. syndesis-extension-definition.json 파일에서 작업 및 해당 속성을 정의하는 코드를 작성합니다. 각 진입점에 대해 새 작업이 필요합니다.

    생성하는 각 작업은 Fuse Online의 사용자 지정 단계에 해당합니다. 각 작업에 대해 다양한 유형의 코드를 사용할 수 있습니다. 즉, 한 가지 작업에 Camel 경로를 사용할 수 있으며 다른 작업에 Java 8080을 사용할 수 있습니다.

    각 속성은 Fuse Online 단계 구성 매개변수에 해당합니다. Fuse Online에서 사용자가 사용자 지정 단계를 선택하면 Fuse Online에서 구성 매개 변수 값을 입력하라는 메시지를 표시합니다. 예를 들어 사용자 지정 로그 단계에는 로그에 보낼 정보를 나타내는 수준 매개변수가 있을 수 있습니다.

    다음은 확장자를 업로드하고 사용자 지정 단계를 통합에 추가한 후 Fuse Online에서 사용자가 입력한 속성을 포함하여 확장 메타데이터를 포함하는 .json 파일의 템플릿입니다.

    {
      "actions": [
        {
          "actionType": "extension",
          "id": "${actionId}",
          "name": "Action Name",
          "description": "Action Description",
          "tags": [
               "xml"
          ],
          "descriptor": {
            "kind": "ENDPOINT|BEAN|STEP",
            "entrypoint": "direct:${actionId}",
            "inputDataShape": {
              "kind": "any"
            },
            "outputDataShape": {
              "kind": "any"
            },
            "propertyDefinitionSteps": []
          }
        }
      ],
      "tags": [
        "feature",
        "experimental"
      ]
    }
    참고

    이 릴리스에서는 태그가 무시됩니다. 향후 사용을 위해 예약되어 있습니다.

  3. 확장 종속 항목을 편집하려면 편집기에서 'pom.xml 'file을 엽니다. 종속성을 추가하는 경우 해당 범위를 정의해야 합니다.

사용자 정의 단계의 코드 작성을 완료하면 10.5절. “Fuse Online 확장 JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.

10.5. Fuse Online 확장 JAR 파일 빌드

확장자에 대한 .jar 파일을 빌드하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
  2. 컨텍스트 메뉴에서 Run AsMaven clean verify 를 선택합니다.
  3. 콘솔 보기에서 빌드의 진행 상황을 모니터링할 수 있습니다.
  4. 빌드가 완료되면 Project Explorer 보기에서 대상 폴더를 새로 고칩니다(프로젝트를 선택한 다음 F5키를 누릅니다).
  5. Project Explorer 보기에서 대상 폴더를 열어 생성된 .jar 파일을 확인합니다.

    .jar 파일의 이름은 Maven 기본값 ${artifactId}-$version}.jar를 따릅니다.

    예: custom:step-camel-1.0.0.jar

    .jar 파일은 확장자, 필요한 종속 항목 및 해당 메타데이터(확장 Id, 이름, 버전, 태그 및 설명)를 정의합니다. 예를 들면 다음과 같습니다.

    {
        "schemaVersion" : "v1",
        "name" : "Example Fuse Online Extension",
        "description" : "Logs a message body with a prefix",
        "extensionId" : "fuse.online.extension.example",
        "version" : "1.0.0",
        "actions" : [ {
            "id" : "Log-body",
            "name" : "Log Body",
            "description" : "A simple xml Body Log with a prefix",
            "descriptor" : {
                "kind" : "ENDPOINT",
                "entrypoint" : "direct:log-xml",
                "resource" : "classpath:META-INF/syndesis/extensions/log-body-action.xml",
                "inputDataShape" : {
                    "kind" : "any"
                },
                "outputDataShape" : {
                    "kind" : "any"
                },
                "propertyDefinitionSteps" : [ {
                    "description" : "Define your Log message",
                    "name" : "Log Body",
                    "properties" : {
                        "prefix" : {
                            "componentProperty" : false,
                            "deprecated" : false,
                            "description" : "The Log body prefix message",
                            "displayName" : "Log Prefix",
                            "javaType" : "String",
                            "kind" : "parameter",
                            "required" : false,
                            "secret" : false,
                            "type" : "string"
                        }
                    }
                } ]
            },
            "tags" : [ "xml" ],
            "actionType" : "step"
        } ],
        "dependencies" : [ {
            "type" : "MAVEN",
            "id" : "io.syndesis.extension:extension-api:jar:1.3.0.fuse-000014"
        } ],
        "extensionType" : "Steps"
    }

10.6. Fuse Online 사용자에게 JAR 파일 제공

Fuse Online 사용자에게 다음을 제공합니다.

  • .jar 파일
  • 확장을 설명하는 문서입니다. 단계 확장의 경우 단계 확장의 각 작업에 입력 또는 출력으로 필요한 데이터 셰이프에 대한 정보를 포함합니다.For a step extension, include information about data shape that each action in the step extension requires as input or provides as output (for data mapping).

Fuse Online에서 사용자는 Fuse Online과의 애플리케이션 통합에 설명된 대로 .jar 파일을 업로드합니다.

11장. 새 Camel XML 파일 생성

11.1. 개요

Apache Camel은 camelContext 요소가 포함된 XML 파일에 경로를 저장합니다. 새 Fuse Integration 프로젝트를 생성할 때 툴링은 기본적으로 프로젝트의 일부로 Apache Camel 컨텍스트( XML) 파일을 제공합니다.

사전 구성된 모든 필수 네임스페이스와 템플릿 camelContext 요소가 포함된 새 Camel XML 파일을 추가할 수도 있습니다.

11.2. 절차

프로젝트에 새 Apache Camel 컨텍스트 파일을 추가하려면 다음을 수행합니다.

  1. 그림 11.1. “Camel XML 파일 마법사” 과 같이 기본 메뉴에서 파일 → Camel XML 파일을 선택하여 Camel XML 파일 마법사를 엽니다.

    그림 11.1. Camel XML 파일 마법사

    Camel XML 파일 마법사
  2. RouteContainer 에서 새 파일의 위치를 입력하거나 기본값을 수락합니다.

    Browse…​ button 을 클릭하여 적절한 위치를 검색할 수 있습니다.

    중요

    Spring 프레임워크와 OSGi 블루프린트 프레임워크를 사용하려면 프로젝트의 META-INF 또는 OSGI-INF 폴더 아래의 특정 위치에 모든 Apache Camel 파일을 배치해야 합니다.

    • Spring - projectName/src/main/resources/META-INF/spring/
    • OSGi 블루프린트 - projectName/src/main/resources/OSGI-INF/blueprint/
  3. 파일 이름에 새 컨텍스트 파일의 이름을 입력하거나 기본값(camelContext.xml)을 수락합니다.

    파일 이름에는 공백 또는 특수 문자가 포함될 수 없으며 JVM 내에서 고유해야 합니다.

  4. 프레임워크에서 기본값을 수락하거나 경로가 사용할 프레임워크를 선택합니다.

    • Spring 컨테이너, 비 OSGi 컨테이너에 배포되거나 독립 실행형 애플리케이션으로 배포되는 경로의 Spring Cryostat- Cryostat[default]
    • OSGi 블루프린트 Cryostat- Cryostat-OSGi 컨테이너에 배포되는 경로의 경우
    • 경로를 로드하고 기존 camelContexts에 추가할 수 있는 경로
  5. 완료를 클릭합니다.

    새 컨텍스트 파일이 프로젝트에 추가되고 경로 편집기에서 열립니다.

12장. Camel 버전 변경

Fuse 툴링 프로젝트를 사용할 때 사용하는 Camel 버전을 변경할 수 있습니다. 예를 들어 최신 Camel 버전에서 지원되는 기능을 사용하거나 커뮤니티 버전을 사용하려는 경우 유용합니다.

프로젝트에서 사용하는 Camel 버전을 변경하려면 다음을 수행합니다.

  1. Project Explorer 에서 Camel 버전을 변경할 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 ConfigureChange Camel Version 을 선택합니다.
  2. Camel 버전 변경 창에서 Camel 버전 필드 오른쪽에 있는 드롭다운을 클릭하여 사용 가능한 Camel 버전을 표시합니다.

    Apache Camel의 커뮤니티 버전을 사용하려면 버전 번호(예: 2.19.2 )를 입력합니다.

  3. 원하는 버전을 선택하거나 입력하고 마침 을 클릭합니다.

Fuse Tooling은 선택한 버전이 Fuse Tooling에서 사용 가능하고 지원되는지 확인합니다. 그런 다음 Fuse Tooling이 Camel 버전을 변경하고 프로젝트의 업데이트된 pom.xml 파일을 저장합니다. 선택한 Camel 버전을 사용할 수 없거나 지원되지 않는 경우 오류 메시지가 표시됩니다.

프로젝트의 Camel 버전은 pom.xml 파일에서 < camel.version&gt; 요소에서 확인할 수 있습니다.

13장. 기존 Maven 프로젝트 가져오기

13.1. 개요

예를 들어 애플리케이션을 개발하기 위한 템플릿 또는 시작점으로 사용하려면 기존 프로젝트를 가져올 수 있습니다.

예를 들어 New Fuse Integration Project 마법사는 다음과 같은 Github 리포지토리를 예를 들어 소스로 가리킵니다.

예제 프로젝트를 다운로드한 후 CodeReady Studio로 가져옵니다.

13.2. 절차

기존 Maven 프로젝트를 가져오려면 다음을 수행합니다.

  1. 파일가져오기Maven기존 Maven 프로젝트를 선택한 다음 다음을 클릭합니다.
  2. 루트 디렉터리의 경우 다운로드한 예제 프로젝트가 포함된 폴더를 선택합니다.
  3. 프로젝트 목록에서 가져올 프로젝트를 확인하고 마침 을 클릭합니다.

II 부. 라우팅 컨텍스트 디버깅

Camel 디버거에는 로컬 및 원격으로 실행되는 라우팅 컨텍스트를 디버깅하기 위한 많은 기능이 포함되어 있습니다.

  • 경로 편집기의 노드에서 Condition 및 unconditional Cryostat 설정
  • 디버거 자동 시작 및 디버그 화면으로 전환
  • 실행 중인 라우팅 컨텍스트와 상호 작용:

    • Cryostat 간에 전환하여 메시지 인스턴스의 변수 값을 신속하게 비교
    • 관심 변수 값 검사 및 변경
    • 조사 목록에 관심 있는 변수를 추가하여 디버그 세션 전체에서 추적할 수 있습니다.
    • on-the-fly에서 Cryostat를 비활성화 및 다시 활성화합니다.
    • 라우팅 컨텍스트 런타임에서 메시지 흐름을 그래픽으로 추적
    • 콘솔 로그를 검사하여 Camel 및 디버거 작업 추적
참고

Camel 디버거를 실행하려면 경로 편집기의 캔버스에 표시되는 관심 있는 노드에서 Cryostat를 설정해야 합니다. 그런 다음 프로젝트의 라우팅 컨텍스트 .xml 파일에서 Camel 디버거를 실행하여 논리 오류를 찾아 수정할 수 있습니다. Camel 디버거를 호출하면 디버그 모드에서 라우팅 컨텍스트가 실행되며 Debug Perspective 를 엽니다.

14장. breakpoints 설정

14.1. 개요

Cryostat를 설정하려면 경로 편집기의 디자인 탭에서 프로젝트의 라우팅 컨텍스트 .xml 파일을 열어야 합니다.

Camel 디버거는 다음 두 가지 유형의 Cryostat를 지원합니다.

  • 디버깅 세션 중 하나가 발생할 때마다 unconditional Cryostats Cryostat-triggered
  • Condition Cryostats Cryostat->-<triggered는 디버깅 세션 중에 Cryostat의 지정된 조건이 충족되는 경우에만 트리거됩니다.
참고

소비자 끝점 또는 노드 또는 노드 시에 Cryostat를 설정할 수 없습니다.

14.2. unconditional Cryostats 설정

디자인 탭의 캔버스에 라우팅 컨텍스트가 표시되는 경우:

  1. 디버깅 세션 중에 검사할 상태를 가진 노드를 선택합니다.
  2. red dot 아이콘을 클릭하여 조건 없는 Cryostat를 설정합니다.
  3. 무조건적 list를 설정할 각 노드에 대해 다음 단계를 반복합니다.

14.3. 조건부 Cryostat 설정

디자인 탭의 캔버스에 라우팅 컨텍스트가 표시되는 경우:

  1. 디버깅 세션 중에 검사할 상태를 가진 노드를 선택합니다.
  2. yellow dot 아이콘을 클릭하여 조건부 Cryostat를 설정하고 Edit the condition and language of your Cryostat…​ 대화 상자를 엽니다.

    debug CondBPCnfg
  3. Language (언어) 드롭다운 메뉴를 클릭하고 사용할 표현식 언어를 선택하여 Cryostat를 트리거할 조건을 만듭니다.

    Fuse Tooling은 24개의 표현 언어를 지원합니다. 이러한 언어 중 일부는 조건 식을 생성하기 위한 변수를 제공하지만 다른 언어에서는 그렇지 않습니다.

  4. 변수 를 클릭하여 선택한 언어의 지원되는 변수 목록을 표시합니다.

    목록이 표시되면 하나 이상의 변수를 순서대로 선택하여 Cryostat 트리거를 위한 조건을 만듭니다. 선택한 변수가 조건 텍스트 상자에 나타납니다.

    expressLangNoVars 가 표시되면 Condition 텍스트 상자에 표현식을 직접 입력합니다.

  5. 조건부 Cryostat를 설정할 각 노드에 대해 [condBpFirst] ~ [condBpLast] 단계를 반복합니다.

14.4. Cryostat 비활성화

temporarily disable a Cryostat, leaving it in place, then enable it again later. resume co 버튼은 디버깅 세션 중에 비활성화된 Cryostat를 건너뜁니다.

Cryostat를 비활성화하려면 캔버스에서 노드를 선택하고 gray dot 아이콘을 클릭합니다. Cryostat는 회색으로 전환되어 해당 값이 비활성화되었음을 나타냅니다.

비활성화된 Cryostat를 활성화하려면 캔버스에서 노드를 선택하고 green dot 아이콘을 클릭합니다. 비활성화된 Cryostat가 조건적인지 또는 무조건적인지 여부에 따라 각각 노란색 또는 빨간색으로 전환하여 다시 활성화되었음을 나타냅니다.

참고

디버깅 세션 중에 Cryostat를 비활성화하고 다시 활성화할 수도 있습니다. 자세한 내용은 19장. 실행 중인 컨텍스트에서 breakpoints 비활성화의 내용을 참조하십시오.

14.5. Cryostat 삭제

개별 Cryostat 또는 모든 Cryostat를 삭제할 수 있습니다.

  • 경로 컨테이너를 개별적으로 삭제하려면 경로 컨테이너를 삭제하려면 삭제하려는 노드가 있는 노드를 선택하고 delete bp 아이콘을 클릭합니다.
  • 특정 경로의 Cryostat를 모두 삭제하려면 대상 경로의 컨테이너를 마우스 오른쪽 버튼으로 클릭하고 gray dot 모든 Cryostat 삭제 를 선택합니다.
  • 모든 경로의 Cryostat를 모두 삭제하려면 캔버스를 마우스 오른쪽 버튼으로 클릭하고 gray dot 모든 Cryostat 삭제 를 선택합니다.

15장. Camel Debugger 실행

로컬에서 실행 중인 라우팅 컨텍스트 및 원격으로 실행되는 라우팅 컨텍스트에서 Camel 디버거를 실행할 수 있습니다. 디버깅 모드에서 동일한 기본 기능 및 기능을 사용할 수 있습니다.

  • 로컬 디버깅 Cryostat- Cryostat는 Fuse Tooling과 동일한 JVM에서 실행되는 라우팅 컨텍스트에서 디버거를 실행합니다. 이 모드는 프로젝트 탐색 보기에서 프로젝트의 라우팅 컨텍스트를 선택하고 컨텍스트 메뉴에서 Debug AsLocal Camel Context 를 선택하여 활성화됩니다.
  • 로컬 머신 또는 원격 머신의 별도의 JVM에서 실행 중인 라우팅 컨텍스트에서 디버거를 실행합니다.Runs the debugger on a routing context running in a separate JVM either on the local machine or on a remote machine. 이 모드에서는 로컬 머신 또는 액세스 가능한 원격 머신에 지원되는 런타임 서버가 필요합니다. 원격 런타임의 연결 세부 정보를 지정하는 디버그 시작 구성을 생성하고 실행하여 활성화됩니다.
참고

프로젝트에 Java 코드가 포함된 경우 표준 Eclipse Java 디버깅 툴을 사용하여 디버깅할 수 있습니다. 로컬 디버깅의 경우 자동으로 사용할 수 있습니다. 원격 디버깅의 경우 원격 Camel 컨텍스트 및 Java 시작 옵션을 사용해야 합니다( 15.2절. “원격으로 실행 중인 라우팅 컨텍스트 디버깅”참조).

참고

Camel 디버거를 시작하기 전에 라우팅 컨텍스트 파일에서 Cryostat를 설정해야 합니다.

15.1. 로컬에서 실행 중인 라우팅 컨텍스트 디버깅

15.1.1. 절차

  1. Project Explorer 보기에서 디버그할 라우팅 컨텍스트 파일을 선택합니다.
  2. 선택한 파일을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Debug AsLocal Camel Context 를 선택합니다.

    Fuse Tooling은 Camel 경로를 빌드하고 Apache Camel을 시작하고, 라우팅 컨텍스트를 시작하고, Cryostat를 활성화하고, 라우팅 컨텍스트에서 경로를 시작하고, nodes를 추가하고, Camel 디버거를 활성화합니다.

    Camel 디버거는 첫 번째 Cryostat 히트(메시지 수신)에서 라우팅 컨텍스트 실행을 중지하고 디버그 화면을 열지 여부를 표시하라는 메시지를 표시합니다.

    DBCnfrmSwitchToDBView
  3. 를 클릭하여 디버그 화면을 엽니다.

    디버그 모드는 실행 중인 라우팅 컨텍스트에서 발생한 첫 번째 Cryostat에서 일시 중지된 라우팅 컨텍스트를 사용하여 열립니다.

    중요

    Cryostat는 최대 5분 동안 유지되며 디버깅이 자동으로 다시 시작되고 다음 Cryostat로 이동하거나 라우팅 컨텍스트의 끝으로 이동합니다.

    openDBPerspective
    참고

    콘솔 출력을 보려면 화면을 전환할 때 콘솔 보기를 엽니다.

    참고

    기본적으로 디버그 화면에는 실행 중인 라우팅 컨텍스트에서 별도의 경로를 전환할 수 있는 수단을 제공하는 view가 표시됩니다. 라우팅 컨텍스트에 단일 경로가 포함된 경우 뷰 닫으면 다른 보기를 확장하여 디버거 출력에 더 쉽게 액세스하고 검사할 수 있습니다.

15.1.2. 라우팅 컨텍스트를 통해 메시지 교환 진행 상황 모니터링

stepover co (단계 초과)를 클릭하여 라우팅 컨텍스트에서 다음 실행 노드로 이동합니다. resume co (다시 시작)를 클릭하여 라우팅 컨텍스트의 다음 활성 Cryostat에서 계속 실행됩니다.

debug StateChange

15.2. 원격으로 실행 중인 라우팅 컨텍스트 디버깅

참고

원격 호스트에 배포된 Fuse 서버는 CodeReady Studio의 서버 보기에 등록할 수 없습니다. 따라서 CodeReady Studio 내에서 원격 Fuse 서버를 시작, 자동 재배포 또는 중지할 수 없습니다. 대신 CodeReady Studio 외부에서 디버그 모드에서 Fuse를 시작해야 합니다.

15.2.1. 사전 요구 사항

  • 다음 방법 중 하나로 Fuse 런타임에 액세스할 수 있습니다.

    • 로컬 시스템에 Fuse 서버를 설치하고 Fuse_HOME/etc/users.properties 파일을 편집하여 admin 사용자를 활성화합니다. 자세한 내용은 28.1절. “서버 추가”의 내용을 참조하십시오.
    • 원격 시스템에 설치된 Fuse 서버에 액세스할 수 있어야 합니다. admin 사용자의 자격 증명을 포함하여 연결 세부 정보를 알고 있어야 합니다.
  • 새 Fuse 통합 프로젝트를 생성합니다. “프로젝트 이름 및 작업 공간 지정” 를 참조하십시오. Fuse Integration 프로젝트에서 다음을 수행합니다.

    • Fuse 서버 런타임 버전과 일치하는 Camel 버전을 선택합니다.
    • 빈 블루프린트 DSL 프로젝트를 생성하거나 블루프린트 DSL과 함께 Fuse 사전 정의 템플릿 중 하나를 사용합니다.

      참고

      요구 사항은 아니지만 프로젝트의 라우팅 컨텍스트를 로컬 Camel 컨텍스트로 성공적으로 실행할 수 있는지 확인하는 것이 좋습니다. 자세한 내용은 6.1절. “로컬 Camel 컨텍스트로 경로 실행”의 내용을 참조하십시오.

      참고

      “원격 디버깅 설정 및 시작” 의 예제는 FuseContent Based Router 사전 정의된 템플릿과 Red Hat Fuse 6.3.0 런타임을 기반으로 합니다.

  • Red Hat CodeReady Studio:

15.2.2. 원격 디버깅 설정 및 시작

Fuse 및 서버에 배포된 프로젝트를 중지하면 다음과 같이 원격 디버깅을 설정하고 시작해야 합니다.

  • Red Hat CodeReady Studio 외부에서 디버그 모드에서 Fuse를 시작합니다.

    원격 호스트에 배포된 Fuse 서버는 CodeReady Studio의 서버 뷰에 등록할 수 없으므로 CodeReady Studio 외부에서 Fuse를 디버그 모드에서 시작해야 합니다.

  • CodeReady Studio에서 경로 편집기에서 열려 있는 프로젝트의 라우팅 컨텍스트의 노드에서 Cryostat를 설정합니다.
  • 원격 Camel 컨텍스트 디버그 구성을 생성하고 실행합니다.
  • Cryostat Navigator 보기에서 Fuse 런타임에 연결합니다.
  • Fuse 런타임 내에서 실행되는 Camel 경로의 입력 노드에 있는 Cryostat Navigator 보기에 테스트 메시지를 삭제합니다.
  • 라우팅 디버깅을 위해 Camel 디버거의 툴을 사용합니다.

15.2.3. 절차

원격 디버깅을 설정하고 시작하려면 다음을 수행합니다.

  1. Red Hat CodeReady Studio 외부에서 터미널을 열고 입력합니다.

    $ [FUSE_HOME]/bin/fuse debug
  2. Fuse 시작 화면이 표시될 때까지 기다린 다음 CodeReady Studio의 Fuse Integration 관점으로 돌아갑니다.
  3. 툴링의 경로 편집기에서 디자인 탭에서 프로젝트의 라우팅 컨텍스트가 열려 있는 상태에서 관심 있는 노드에 Cryostat를 설정합니다. 자세한 내용은 14장. breakpoints 설정의 내용을 참조하십시오.
  4. 프로젝트 Explorer 보기에서 프로젝트 의 루트를 마우스 오른쪽 버튼으로 클릭하고 Debug As Debug Configurations 를 선택하여 디버그 구성 마법사를 엽니다.

    NewRemoteDBLaunchCnfg
  5. 구성 유형 창에서 원격 Camel 컨텍스트 또는 원격 Camel 컨텍스트 및 Java 를 선택한 다음 New Configuration 을 클릭합니다.

    CCJdbNewLaunchCnfg

    Remote Camel ContextRemote Camel Context 및 Java 옵션 모두에 대해 Camel 및 Cryostat 탭에 구성 세부 정보를 지정해야 합니다.

    Remote Camel Context 및 Java 옵션의 경우 Connect 탭에서 구성 세부 정보도 지정해야 합니다.

    참고

    표준 Eclipse Java 디버깅 툴을 사용하여 디버깅할 Java 코드가 없는 경우 Remote Camel Context 옵션을 선택합니다.

  6. 이름 필드에 새 시작 구성의 이름을 입력합니다.
  7. Camel 탭에서 찾아보기 를 클릭하여 Open Resources 대화 상자에서 프로젝트의 라우팅 컨텍스트 .xml 파일을 찾습니다.

    CCdbSelCamelCntxt
    참고

    항목 일치 창에서 파일을 선택하면 툴에 창 하단에 프로젝트 루트를 기준으로 파일의 위치가 표시됩니다.

  8. 항목 일치 창에서 목록에서 프로젝트의 라우팅 컨텍스트 파일을 선택한 다음 확인을 클릭합니다.

    툴링은 Select Camel Context file 필드에 파일의 경로를 삽입합니다.

    CCJDbugCamelTabNew
  9. Cryostat 탭 클릭합니다.

    RemoteDBJMXtabDefaults

    다음과 같이 Cryostat 연결 세부 정보를 편집합니다.

    • Cryostat Uri Cryostat- Cryostatchange :9011/jmxrmi to :1099/karaf-root

      Fuse 서버가 원격 호스트에서 실행 중인 경우 localhost 를 원격 호스트의 DNS 이름 또는 IP 주소로 바꿉니다.

    • Cryostat 사용자 Cryostat- Cryostat 입력 관리자.
    • Cryostat 암호 Cryostat- Cryostatenter admin.

      중요

      Cryostat 사용자 및 Cryostat 암호에 표시된 값은 Fuse admin 사용자 기본값이며 Fuse_HOME/etc/users.properties 파일에 저장됩니다. 설정이 다른 경우 해당 값과 관련된 값을 입력합니다.

      Remote Camel Context 디버그 시작 구성을 생성하는 경우 작업이 수행됩니다. [debugCfgGo] 으로 건너뜁니다.

  10. 연결 탭을 클릭합니다.

    RemoteDBConnectTabDefaults

    포트 값을 8000 에서 5005 로 변경합니다. 다른 속성을 그대로 둡니다.

  11. 클릭한 다음 디버그 를 클릭합니다.
  12. Cryo stat Navigator 보기에서 Fuse [xxx] [Disconnected] 를 두 번 클릭하여 연결한 다음 해당 트리를 확장합니다.
  13. Project Explorer 보기에서 src/test/resources/data 에서 테스트 메시지를 드래그하여 Cryostat Navigator 보기의 cbr-example-context/Endpoints/file/work/cbr/input 폴더에 놓습니다.

    메시지가 라우팅 컨텍스트에서 설정된 첫 번째 Cryostat에 도달하면 툴링은 디버그 화면으로 전환하도록 요청합니다.

    DBCnfrmSwitchToDBView
  14. 예를 클릭합니다.

    RemoteDBPerspOpen

    이 시점에서 Camel 디버거의 툴을 사용하여 라우팅 컨텍스트를 디버깅할 수 있습니다.

    참고

    원격 디버깅 세션에서는 콘솔 보기에 로그 출력이 표시되지 않습니다.

    참고

    하나의 메시지가 라우팅 컨텍스트의 끝에 도달하면 디버거가 일시 중단됩니다. 디버깅을 계속하려면 Fuse Integration 관점으로 다시 전환하고 Cryostat Navigator 보기의 입력 노드에 다른 메시지를 삭제합니다. 이렇게 할 때마다 툴링은 디버그 화면으로 전환을 요청합니다.

16장. Camel 디버그 중지

16.1. 개요

Camel 디버거를 중지하는 방법은 실행 중인 모드에 따라 다릅니다.

  • 로컬 디버깅 (15.1절. “로컬에서 실행 중인 라우팅 컨텍스트 디버깅”)

    Camel 디버거를 중지하려면 디버깅 세션이 종료되면 메뉴 모음에서 Terminate button 를 클릭합니다. 그렇지 않으면 Terminate button 를 두 번 클릭합니다. 한 번 현재 실행 중인 노드 스레드를 종료하고 한 번 클릭하여 Camel Context 스레드를 종료합니다( 디버그 보기에 표시됨).

    참고

    Camel 디버거를 종료하면 콘솔도 종료되지만 출력을 지우지 않습니다. 출력을 지우려면 콘솔 보기의 메뉴 모음에서 clear co ( #159 콘솔)을 클릭합니다.

  • 원격 디버깅 (15.2절. “원격으로 실행 중인 라우팅 컨텍스트 디버깅”)

    Camel 디버거를 중지하려면 디버그 보기에서 [Remote Camel Context] 스레드 또는 [Remote Camel Context and Java] 스레드를 선택한 다음 메뉴 모음에서 Terminate button 를 클릭합니다.

    참고

    Camel 디버거 종료는 서버 보기 또는 Cryostat Navigator 보기에서 원격 런타임 서버에 대한 연결을 종료하지 않습니다.

16.2. Camel 디버거 닫기

프로젝트 디버깅을 완료한 후 디버그 화면을 닫고 워크벤치에 더 많은 공간을 만들 수 있습니다.

이렇게 하려면 CodeReady Studio 도구 모음 오른쪽에 있는 Debug perspective icon 를 마우스 오른쪽 버튼으로 클릭한 다음 닫기 를 선택합니다.

17장. 변수 값 변경

17.1. 개요

Camel 디버거가 Cryostat에 도달하면 변수 보기에 라우팅 컨텍스트의 해당 시점에서 사용 가능한 모든 변수의 값이 표시됩니다. 일부 변수는 편집할 수 있으므로 값을 변경할 수 있습니다. 이를 통해 애플리케이션에서 프로그램 상태의 변경 사항을 처리하는 방법을 확인할 수 있습니다.

참고

모든 변수를 편집할 수 있는 것은 아닙니다. 편집 가능한 변수의 컨텍스트 메뉴에는 값 변경…​ 옵션이 표시됩니다.

17.2. 절차

변수 값을 변경하려면 다음을 수행합니다.

  1. 필요한 경우 디버거를 시작합니다. 15장. Camel Debugger 실행을 참조하십시오.
  2. 변수 보기에서 변경하려는 값이 있는 변수를 선택한 다음 해당 Value 필드를 클릭합니다.

    editBPvars1

    변수의 필드는 편집 모드임을 나타내는 파란색의 표시등을 설정합니다.

    참고

    또는 변수를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 Change Value…​ 를 선택하여 값을 편집할 수 있습니다.

  3. 새 값을 입력한 다음 Enter 를 클릭합니다.

    콘솔 보기에는 변수의 값 변경 사항을 나타내는 INFO 수준 로그 항목이 표시됩니다(예: 노드에서 Breakpoint는 exchangeId: ID-dhcp-97-16-bos-redhat-com-bos-redhat-com-52574-1417298894070-0-2 및 header: UNITED KINGDOM )에서 메시지 헤더를 업데이트하고있습니다.

  4. Cryostat를 계속 건너뛰고 메시지가 예상대로 처리되는지 확인합니다. 각 단계에서 디버그 보기, 변수 보기 및 콘솔 출력을 확인합니다.

18장. 감시 목록에 변수 추가

18.1. 개요

조사 목록에 변수를 추가하면 특정 변수에 중점을 두고 라우팅 컨텍스트를 통해 이동하는 대로 값이 예상대로 변경되는지 확인할 수 있습니다.

18.2. 절차

감시 목록에 변수를 추가하려면 다음을 수행합니다.

  1. 필요한 경우 디버거를 시작합니다. 15장. Camel Debugger 실행을 참조하십시오.
  2. 변수 보기에서 추적하려는 변수를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.

    UGaddVarWatchList
  3. Watch 를 선택합니다.

    Breakpoints 뷰 옆에 있는 새 뷰 식이 열립니다.A new view, Expressions, opens next to the Breakpoints view. Expressions 뷰에는 조사 중인 변수의 이름과 현재 값이 표시됩니다. 예를 들면 다음과 같습니다.

    UGwatchList
  4. [watch1][watch2] 을 반복하여 감시 목록에 변수를 추가합니다.

    참고

    추가하는 변수는 제거할 때까지 감시 목록에 남아 있습니다. 변수 감시를 중지하려면 목록에서 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 제거를 클릭합니다.

  5. Expressions 뷰가 열려 있으면 라우팅 컨텍스트를 통해 경로의 각 단계에 도달할 때 감시 목록의 각 변수의 값이 변경되는 방식을 추적합니다.

19장. 실행 중인 컨텍스트에서 breakpoints 비활성화

19.1. 개요

Breakpoints 뷰에서 실행 중인 라우팅 컨텍스트에서 Cryostat를 비활성화하고 다시 활성화할 수 있습니다.

Cryostat를 비활성화하면 resume co 버튼을 사용하면 디버깅 세션 중에 디버거가 이를 건너 뛰게 됩니다.

19.2. Breakpoints 보기에서 Cryostat 비활성화 및 활성화

Breakpoints 뷰는 모든 설정된 Cryostat가 활성화된 상태로 열립니다.

BPviewEnabled

Cryostat를 비활성화하려면 확인란을 지웁니다.

BPviewDisabled

비활성화한 각 Cryostat에 대해 콘솔 보기에 비활성화되었음을 알리는 INFO 수준 로그 항목이 표시됩니다(예: Removing Cryostat log2). 마찬가지로 다시 활성화할 때마다 Console 뷰에는 활성화되어 있음을 알리는 INFO 수준 로그 항목이 표시됩니다(예: Cryostat log2 추가).

참고

비활성화된 Cryostat를 다시 활성화하려면 확인란을 클릭합니다. 콘솔 보기에 개체가 선택한 노드에 추가되었음을 알리는 INFO 수준 로그 항목이 표시됩니다.

III 부. 애플리케이션 모니터링 및 테스트

Cryo stat Navigator 보기는 Fuse 애플리케이션을 모니터링하고 테스트하는 다양한 방법을 제공합니다.

참고

Fuse 관리에 설명된 대로 Fuse 콘솔을 사용하여 Fuse 애플리케이션을 모니터링할 수도 있습니다. https://access.redhat.com/documentation/en-us/red_hat_fuse/7.7/html-single/managing_fuse/index

20장. Cryostat Navigator

그림 20.1. “Cryostat Navigator 보기” 에 표시된 Cryostat Navigator 보기는 애플리케이션에서 실행 중인 모든 프로세스를 표시하며 모니터링 및 테스트 기능과 모든 상호 작용을 유도합니다. Fuse Integration 관점의 다른 영역은 Cryostat Navigator 보기에서 선택한 노드와 관련된 정보를 표시하도록 조정됩니다. Cryo stat Navigator 보기에서 컨텍스트 메뉴는 경로 추적을 활성화하고 JMS 대상을 추가하는 데 필요한 명령을 제공합니다.

그림 20.1. Cryostat Navigator 보기

Cryostat Navigator 보기

기본적으로 Cryostat Navigator 보기는 로컬 시스템에서 실행되는 모든 Cryostat 서버를 검색하고 다음 카테고리 아래에 나열합니다.

  • 로컬 프로세스
  • 서버 연결
  • 사용자 정의 연결
참고

서버의 Cryostat URL을 사용하여 다른 Cryostat 서버를 추가할 수 있습니다. 자세한 내용은 20.2절. “Cryostat 서버 추가”의 내용을 참조하십시오.

20.1. Cryostat의 프로세스 보기

20.1.1. 개요

Cryo stat Navigator 보기에는 일련의 트리로 알려진 모든 프로세스가 나열됩니다. 각 트리의 루트는 Cryostat 서버입니다.

목록의 첫 번째 트리는 로컬 시스템에서 실행 중인 모든 Cryostat 서버를 포함하는 특수 로컬 프로세스 트리입니다. 포함된 프로세스를 확인하려면 Cryostat 서버 중 하나에 연결해야 합니다.

20.1.2. 로컬 Cryostat 서버의 프로세스 보기

로컬 Cryostat 서버의 프로세스에 대한 정보를 보려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 로컬 프로세스를 확장합니다.
  2. 로컬 프로세스에서 최상위 항목 중 하나를 두 번 클릭하여 연결합니다.
  3. 항목 옆에 표시되는 expansion arrow 아이콘을 클릭하여 JVM에서 실행 중인 구성 요소 목록을 표시합니다.

20.1.3. 대체 servers의 프로세스 보기

대체 Cryostat 서버의 프로세스에 대한 정보를 보려면 다음을 수행합니다.

  1. 20.2절. “Cryostat 서버 추가” view에 대한 Cryo stat 서버 입니다.
  2. Cryo stat Navigator 보기에서 항목 옆에 표시되는 expansion arrow 아이콘을 사용하여 서버의 항목을 확장합니다. JVM에서 실행 중인 해당 Cryostat 서버의 구성 요소 목록이 표시됩니다.

20.2. Cryostat 서버 추가

20.2.1. 개요

트리의 로컬 프로세스 분기 아래에 있는 모든 로컬 Cryostat 서버 목록이 표시됩니다. 다른 시스템에 배포된 구성 요소를 보려면 특정 Cryostat 서버에 연결해야 할 수 있습니다.

Cryostat 서버를 추가하려면 추가하려는 서버의 URL을 알아야 합니다.

20.2.2. 절차

Cryostat Navigator 보기에 Cryostat 서버를 추가하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 새 연결 new server wiz 을 클릭합니다.
  2. Create a new Cryostat connection wizard에서 Default Cryostat Connection을 선택합니다.
  3. 다음을 클릭합니다.
  4. 고급 탭을 선택합니다.
  5. 이름 필드에 Cryostat 서버의 이름을 입력합니다.

    이름은 어떤 문자열이든 될 수 있습니다. Cryostat Navigator 트리의 항목에 레이블을 지정하는 데 사용됩니다.

  6. Cryo stat URL 필드에 서버의 URL을 입력합니다.
  7. Cryostat 서버에 인증이 필요한 경우 UsernamePassword 필드에 사용자 이름과 암호를 입력합니다.
  8. 완료를 클릭합니다.

    새 Cryostat 서버는 사용자 정의 연결 트리에 분기로 표시됩니다.

21장. 구성 요소의 Cryostat 통계 보기

21.1. 개요

툴링은 Fuse 구성 요소에서 보고한 모든 Cryostat 통계를 수집하여 속성 보기에 표시합니다. 이 통계 정보는 통합 애플리케이션에서 발생하는 상황에 대한 중요한 통찰력을 제공할 수 있습니다.

Cryostat 통계는 속성,프로세서프로필 의 세 가지 범주로 그룹화됩니다.

21.2. 절차

Fuse 구성 요소의 통계를 보려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 구성 요소의 노드를 찾습니다.

    하위 수준 구성 요소를 찾으려면 트리에서 노드를 확장해야 할 수 있습니다.

  2. 검토할 통계가 있는 Fuse 구성 요소의 노드를 선택합니다.
  3. 속성 보기를 엽니다.
  4. 속성 페이지에 선택한 구성 요소의 properties가 표시됩니다.

    JMXchoiceNodeProps
  5. 프로세서를 클릭하여 선택한 구성 요소의 교환 메트릭을 확인합니다.

    JMXchoiceNodeProcs
  6. Profile 을 클릭하여 선택한 노드 및 해당 하위 노드에 대한 메시지 메트릭을 확인합니다.

    JMXchoiceNodeProfile

22장. 메시지 검색

22.1. 개요

분산 환경에서 애플리케이션을 디버깅할 때 중요한 툴은 애플리케이션의 JMS 대상 및 경로 끝점에 저장된 모든 메시지가 표시되는 것입니다. 툴링은 다음을 찾을 수 있습니다.

  • JMS 대상
  • JMS 라우팅 끝점
  • Apache Camel 라우팅 끝점
  • SEDA 라우팅 끝점
  • 라우팅 끝점 검색
  • mock 라우팅 끝점
  • VM 라우팅 끝점
  • 데이터 세트 라우팅 끝점

22.2. 절차

메시지를 검색하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 검색할 JMS 대상 또는 끝점을 선택합니다.

    메시지 목록이 메시지 보기에 표시됩니다.

  2. 메시지 보기에서 검사할 개별 메시지를 선택합니다.

    browseMsgView

    속성 보기에 메시지 세부 정보 및 콘텐츠가 표시됩니다.

    browseMsgPropertiesV

23장. 경로 추적

경로를 디버깅하는 것은 종종 다음 두 가지 문제 중 하나를 해결하는 것입니다.

  • 메시지가 잘못 변형되었습니다.
  • 메시지가 대상 끝점에 도달하지 못했습니다.

경로를 통해 하나 이상의 테스트 메시지를 추적하는 것이 이러한 문제의 원인을 찾는 가장 쉬운 방법입니다.

툴링의 경로 추적 기능을 사용하면 메시지가 경로를 통해 가져오는 경로를 모니터링하고 프로세서에서 프로세서로 메시지를 전달할 때 메시지가 어떻게 변환되는지 확인할 수 있습니다.

다이어그램 보기에는 메시지가 통과하는 경로를 볼 수 있는 경로의 그래픽 표현이 표시됩니다. 경로의 각 프로세서에 대해 경로 시작 이후 처리된 모든 메시지의 평균 처리 시간(밀리초)과 경로 시작 이후 처리된 메시지의 수를 표시합니다.

Messages View 는 JMS 대상 또는 route endpoint에서 처리한 메시지를 Cryostat Navigator 트리 에서 선택합니다. 메시지 보기에서 개별 메시지 추적을 선택하면 속성 보기에서 메시지의 전체 세부 정보 및 콘텐츠가 표시되고 다이어그램 보기에서 코레이터포팅 노드를 강조 표시합니다.

경로를 통한 메시지 추적에는 다음 단계가 포함됩니다.

23.1. 경로 추적을 위한 테스트 메시지 생성

23.1.1. 개요

경로 추적은 모든 종류의 메시지 구조와 함께 작동합니다. Fuse Message 마법사는 비어 있는 .xml 메시지를 생성하여 메시지를 완전히 구조화합니다.

참고

테스트 메시지를 저장하려는 폴더가 없는 경우 메시지를 생성하기 전에 생성해야 합니다.

23.1.2. 테스트 메시지를 저장할 새 폴더 생성

새 폴더를 생성하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트 루트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. 폴더 를 선택하여 새 폴더 마법사를 엽니다.

    프로젝트 루트가 Enter에 표시되거나 상위 폴더 필드를 선택합니다.

  3. 프로젝트 계층 구조의 그래픽 표현에서 노드를 확장하고 상위 폴더가 될 노드를 선택합니다.
  4. 폴더 이름 필드에 새 폴더의 이름을 입력합니다.
  5. 완료를 클릭합니다.

    선택한 상위 폴더 아래에 새 폴더가 Project Explorer 보기에 표시됩니다.

    참고

    새 폴더가 나타나지 않으면 상위 foler를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 선택합니다.

23.1.3. 테스트 메시지 생성

테스트 메시지를 생성하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. NewFuse Message 를 선택하여 새 파일 마법사를 엽니다.
  3. 프로젝트 계층 구조의 그래픽 표시에 있는 노드를 확장하고 새 테스트 메시지를 저장할 폴더를 선택합니다.
  4. 파일 이름 필드에 메시지의 이름을 입력하거나 기본값(message.xml)을 수락합니다.
  5. 완료를 클릭합니다.

    새 메시지가 XML 편집기에서 열립니다.

  6. 본문 및 헤더 텍스트 둘 다 메시지 내용을 입력합니다.

    참고

    입력한 헤더 텍스트에 따라 문서에서 참조하는 다이어그램 제약 조건(DTD 또는 XML 스키마) 없음 경고가 표시될 수 있습니다. 이 경고는 무시해도 됩니다.

23.2. 경로 추적 활성화

23.2.1. 개요

해당 라우팅 컨텍스트를 통해 메시지를 추적하려면 라우팅 컨텍스트에 대한 경로 추적을 활성화해야 합니다.

23.2.2. 절차

라우팅 컨텍스트에서 추적을 활성화하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 추적을 시작할 실행 중인 라우팅 컨텍스트를 선택합니다.

    참고

    컨텍스트에서 경로를 선택하여 전체 컨텍스트에서 추적을 시작할 수 있습니다.

  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Start Tracing 을 선택하여 추적을 시작합니다.

    컨텍스트 메뉴에서 중지 추적 컨텍스트가 활성화된 경우 추적이 이미 활성화되어 있습니다.

23.3. 라우팅 컨텍스트를 통해 메시지 추적

23.3.1. 개요

라우팅 컨텍스트에서 어떤 일이 발생하는지 확인하는 가장 좋은 방법은 각 중지에서 메시지에 어떤 일이 발생하는지 확인하는 것입니다. 툴링은 메시지를 실행 중인 라우팅 컨텍스트로 삭제하고 메시지가 통과하는 경로를 추적하는 메커니즘을 제공합니다.

23.3.2. 절차

라우팅 컨텍스트를 통해 메시지를 추적하려면 다음을 수행합니다.

  1. 23.1절. “경로 추적을 위한 테스트 메시지 생성” 에 설명된 대로 하나 이상의 테스트 메시지를 생성합니다.
  2. Project Explorer 보기에서 프로젝트의 Camel 컨텍스트 파일을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 Run AsLocal Camel Context (without Tests) 를 선택합니다.

    참고

    프로젝트에 대한 포괄적인 JUnit 테스트를 생성한 경우를 제외하고 로컬 Camel 컨텍스트 로 실행하지 마십시오.

  3. 23.2절. “경로 추적 활성화” 에 설명된 대로 실행 중인 라우팅 컨텍스트에 대한 추적을 활성화합니다.
  4. Project Explorer 보기에서 테스트 메시지 중 하나를 Cryostat Navigator 보기의 라우팅 컨텍스트의 시작점으로 드래그합니다.
  5. Cryostat Navigator 보기에서 추적 중인 라우팅 컨텍스트를 선택합니다.

    툴링은 메시지 뷰 를 추적 컨텍스트의 각 단계에서 메시지를 나타내는 메시지 인스턴스로 채웁니다.

    다이어그램 보기에는 선택한 라우팅 컨텍스트의 그래픽 표현이 표시됩니다.

  6. 메시지 보기에서 메시지 인스턴스 중 하나를 선택합니다.

    속성 보기에는 메시지 인스턴스의 세부 정보 및 내용이 표시됩니다.

    다이어그램 보기에서 선택한 메시지 인스턴스에 해당하는 경로 단계가 강조 표시됩니다. 경로 단계가 처리 단계인 경우 툴링은 타이밍 및 처리 메트릭을 사용하여 종료 경로에 태그를 지정합니다.

  7. 필요에 따라 이 작업을 반복합니다.

23.4. 경로 추적 비활성화

23.4.1. 개요

라우팅 컨텍스트에서 경로 디버깅을 완료하면 추적을 비활성화해야 합니다.

중요

추적을 비활성화하면 추적을 중지하고 라우팅 컨텍스트의 모든 경로에 대한 추적 데이터를 플러시합니다. 즉, 이전 추적 세션을 검토할 수 없습니다.

23.4.2. 절차

라우팅 컨텍스트의 추적을 중지하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 추적을 비활성화할 실행 중인 라우팅 컨텍스트를 선택합니다.

    참고

    컨텍스트에서 경로를 선택하여 컨텍스트의 추적을 중지할 수 있습니다.

  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 중지를 선택합니다.

    컨텍스트 메뉴에 추적이 표시되면 라우팅 컨텍스트에 대해 추적이 활성화되지 않습니다.

24장. JMS 대상 관리

Cryo stat Navigator 보기를 사용하면 Red Hat Fuse의 실행 중인 인스턴스에서 JMS 대상을 추가하거나 삭제할 수 있습니다.

중요

이러한 변경 사항은 브로커를 다시 시작하면 지속되지 않습니다.

24.1. JMS 대상 추가

24.1.1. 개요

새 시나리오를 테스트할 때 브로커 중 하나에 새 JMS 대상을 추가하는 것이 편리합니다.

24.1.2. 절차

브로커에 JMS 대상을 추가하려면 다음을 수행합니다.

  1. 대상 추가하려는 브로커 노드에서 Queues 하위 또는 Topics 하위 중 하나를 선택합니다.
  2. 선택한 노드를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Create Queue 또는 Create Topic 을 선택합니다.
  3. 큐 생성 또는 주제 생성 대화 상자에서 새 대상의 이름을 입력합니다.
  4. OK를 클릭합니다.
  5. 또는 Topics 하위를 마우스 오른쪽 버튼으로 클릭한 다음 새로 고침을 선택합니다.

    새 대상은 Queues 하위 또는 Topics 하위 아래에 새 대상을 표시합니다.

24.2. JMS 대상 삭제

24.2.1. 개요

장애 조치 시나리오 또는 실패 처리와 관련된 기타 시나리오를 테스트할 때 JMS 대상을 쉽게 제거할 수 있는 것이 도움이 됩니다.

24.2.2. 절차

JMS 대상을 삭제하려면 다음을 수행합니다.

  1. Queues 하위 또는 Topics 하위에서 삭제할 JMS 대상을 선택합니다.
  2. 선택한 대상을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 대기열/토피 삭제를 선택합니다.

25장. 라우팅 끝점 관리

Cryo stat Navigator 보기를 사용하면 라우팅 엔드포인트를 추가하거나 삭제할 수 있습니다.

중요

이러한 변경 사항은 라우팅 컨텍스트를 다시 시작하면 지속되지 않습니다.

25.1. 라우팅 끝점 추가

25.1.1. 개요

새 시나리오를 테스트할 때 라우팅 컨텍스트에 새 끝점을 추가할 수 있습니다.

25.1.2. 절차

라우팅 컨텍스트에 끝점을 추가하려면 다음을 수행합니다.

  1. 라우팅 컨텍스트 노드에서 endpoint를 추가할 Endpoints 하위를 선택합니다.
  2. 선택한 노드를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Create Endpoint 를 선택합니다.
  3. 끝점 생성 대화 상자에서 새 끝점을 정의하는 URL을 입력합니다(예: file://target/messages/validOrders ).
  4. OK를 클릭합니다.
  5. 라우팅 컨텍스트 노드를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 선택합니다.

    새 대상은 끝점의 유형(예: 파일 )에 해당하는 폴더의 끝점 노드의 Endpoints 노드 아래에 새 대상을 표시합니다.

25.2. 라우팅 끝점 삭제

25.2.1. 개요

장애 조치 시나리오 또는 실패 처리와 관련된 기타 시나리오를 테스트할 때 라우팅 컨텍스트에서 끝점을 제거할 수 있는 것이 도움이 됩니다.

25.2.2. 절차

라우팅 끝점을 삭제하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 삭제할 끝점을 선택합니다.
  2. 선택한 끝점을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 끝점 삭제를 선택합니다.

    툴링은 끝점을 삭제합니다.

  3. 뷰에서 삭제된 엔드포인트를 제거하려면 끝점 노드를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 선택합니다.

    엔드포인트는 Cryostat Navigator 보기에서 사라집니다.

    참고

    프로젝트를 다시 실행하지 않고 Project Explorer 보기에서 끝점의 노드를 제거하려면 노드를 마우스 오른쪽 버튼으로 클릭하고 삭제 를 선택하여 명시적으로 삭제해야 합니다. 보기에서 제거하려면 프로젝트를 새로 고칩니다.

26장. 실행 중인 경로 편집

26.1. 개요

프로젝트의 라우팅 컨텍스트를 변경하지 않고 실행 중인 경로에 대한 변경 사항을 실험할 수 있습니다.

이렇게 하려면 다음을 수행합니다.

  • Cryo stat Navigator 보기에서 실행 중인 라우팅 컨텍스트에서 경로 편집 옵션을 활성화합니다.

    이렇게 하면 경로 편집기에 있는 메모리 내 모델이 열립니다. 즉, 원격 CamelContext:<camelContextId > 경로 편집기에 포함됩니다.

  • 경로 편집기에서 라우팅 컨텍스트의 메모리 내 모델을 변경합니다. 동시에 Camel 디버거 및 모든 기능을 사용하도록 관련 노드에 Cryostat를 설정할 수 있습니다.

    메모리 내 모델을 편집하여 노드를 추가, 제거 또는 다시 정렬; 기존 노드의 속성을 추가 또는 제거하며, 기존 노드에 설정된 속성 값을 수정할 수 있습니다. 실행 중인 컨텍스트를 업데이트하고 Cryostat를 설정하면 디버그 화면에 결과를 보려면 메모리 내 모델에 대한 변경 사항을 저장해야 합니다.

  • Cryo stat Navigator 보기에서 실행 중인 라우팅 컨텍스트에서 메시지를 삭제하거나 타이머, ActiveMQ, 파일 또는 기타 연속 입력 노드에서 메시지가 수신될 때까지 기다립니다.
  • Debug 관점에서 결과를 평가하고 Camel 디버거를 사용하여 라우팅 컨텍스트에 대한 더 깊은 통찰력을 얻을 수 있습니다.

26.2. 실행 중인 경로 수정 및 결과 평가

  1. Cryo stat Navigator 보기에서 편집할 경로가 포함된 라우팅 컨텍스트를 선택합니다.
  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 경로 편집을 선택합니다.

    경로 편집기는 라우팅 컨텍스트인 Remote CamelContext:<contextId >의 메모리 내 모델을 열고 컨텍스트의 모든 경로를 표시합니다. 예를 들면 다음과 같습니다.

    CanvasPalette
    참고

    <contextId >는 프로젝트의 라우팅 컨텍스트 .xml 파일에 있는 camelContext 요소의 ID입니다. Fuse컨텐츠 기반 라우터 기본 제공 템플릿을 기반으로 하는 이 예에서는 ID는 cbr-example-context 입니다.

  3. 2장. 경로 편집기에서 라우팅 컨텍스트 편집 에 설명된 대로 경로를 편집한 다음 파일저장을 선택하여 메모리 내 모델에 대한 변경 사항을 저장하고 실행 중인 라우팅 컨텍스트를 업데이트합니다.
  4. 14장. breakpoints 설정 에 설명된 대로 관련 노드에서 Cryostat를 설정합니다.
  5. Cryo stat Navigator 보기에서 실행 중인 라우팅 컨텍스트의 입력 노드에 메시지를 삭제합니다.

    프로젝트에 테스트 메시지가 포함되어 있지 않으면 23.1절. “경로 추적을 위한 테스트 메시지 생성” 에 설명된 대로 생성할 수 있습니다.

  6. 를 클릭하여 디버그 화면으로 전환합니다.
  7. Camel 디버거에서 일반적으로 원하는 대로 message를 단계별로 진행하여 변경 사항이 생성되는 결과를 확인합니다( 15장. Camel Debugger 실행참조).

    Camel 디버거는 일반 디버그 모드와 마찬가지로 경로 편집 모드에서 동일하게 작동하므로 메시지가 라우팅 컨텍스트를 전송하는 동안 Camel 디버거의 기능을 사용할 수 있습니다.

    참고

    메시지가 라우팅 컨텍스트의 끝에 도달하면 디버거가 일시 중단됩니다. 디버깅을 계속하려면 Fuse Integration 관점으로 다시 전환하고 Cryostat Navigator 보기의 입력 노드에 다른 메시지를 삭제합니다. 이렇게 할 때마다 툴링은 디버그 화면으로 전환을 요청합니다.

    참고

    경로 편집 세션 중에 실행 중인 라우팅 컨텍스트에 대한 연결이 끊어질 수 있습니다. 이 경우 Cryostat Navigator 보기에 다음과 같은 내용이 표시됩니다. 로컬 프로세스maven[xxxx][Disconnected]. 세션을 계속 진행하려면 실행 중인 라우팅 컨텍스트에 다시 연결한 다음 Routes(경로 편집) 보기에서 해당 컨텍스트를 선택한 다음, Edit Routes 를 다시 선택해야 합니다.

26.3. 경로 편집 세션 종료

  1. 디버그 화면의 디버그 보기에서 Remote Camel Debug - camelContext--<contextId>--xxxxxxxxxxxx xxxxxxxxxx.xml [Remote Camel Context] 스레드를 선택한 다음 메뉴 모음에서 Terminate button 를 클릭하여 디버깅 세션을 종료합니다.
  2. 콘솔 보기의 메뉴 모음에서 Terminate button 를 클릭하여 라우팅 컨텍스트를 종료합니다.
  3. 콘솔 출력을 지우려면 콘솔 보기의 메뉴 모음 에서 clear co 를 클릭합니다.
  4. Fuse 통합 화면으로 전환하고 경로 편집기에서 Remote CamelContext:<contextId > 탭에서 close 를 클릭하여 라우팅 컨텍스트 파일의 메모리 내 모델을 종료합니다.

27장. 라우팅 컨텍스트 관리

Cryo stat Navigator 보기를 사용하면 실행 중인 라우팅 컨텍스트를 일시 중지하고 재개할 수 있습니다.

27.1. 라우팅 컨텍스트의 작업 일시 중단

27.1.1. 개요

툴링을 사용하면 Cryostat Navigator 보기에서 라우팅 컨텍스트 작업을 일시 중단할 수 있습니다. 컨텍스트 작업을 일시 중지하면 컨텍스트의 모든 경로가 정상적으로 종료되지만 작업을 다시 시작할 수 있도록 메모리에 로드된 상태로 유지됩니다.

27.1.2. 절차

라우팅 컨텍스트의 작업을 일시 중지하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 프로젝트의 Camel Contexts 노드를 확장하고 일시 중단할 작업인 라우팅 컨텍스트를 선택합니다.
  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Suspend Camel Context 를 선택합니다.

    참고

    Resume Camel Context 가 컨텍스트 메뉴에 표시되면 컨텍스트의 작업이 이미 일시 중단됩니다.

27.2. 라우팅 컨텍스트의 재시작 작업

27.2.1. 개요

툴링을 사용하면 Cryostat Navigator 보기에서 일시 중지된 라우팅 컨텍스트의 작업을 다시 시작할 수 있습니다. 컨텍스트 작업을 다시 시작하면 메시지를 처리할 수 있도록 모든 경로가 다시 시작됩니다.

27.2.2. 절차

라우팅 컨텍스트의 작업을 다시 시작하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 프로젝트의 Camel Contexts 노드를 확장하고 다시 시작하려는 작업인 라우팅 컨텍스트를 선택합니다.
  2. 선택한 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Resume Camel Context 를 선택합니다.

    참고

    컨텍스트 메뉴에 Suspend Camel Context 가 표시되면 컨텍스트 및 해당 경로가 실행 중입니다.

IV 부. 컨테이너에 애플리케이션 게시

Fuse Integration 프로젝트를 서버 컨테이너에 게시하려면 먼저 서버와 실행 정의를 툴링의 서버 목록에 추가해야 합니다. 그런 다음 서버 런타임에 프로젝트를 할당하고 게시 옵션을 설정할 수 있습니다.

28장. 서버 관리

Servers 보기를 사용하면 Red Hat CodeReady Studio 환경에서 서버를 실행하고 관리할 수 있습니다.

참고

Camel 프로젝트를 Red Hat Fuse에 게시하는 방법에 대한 단계별 지침은 29장. Fuse Integration Projects를 서버에 게시 에서 참조하십시오.

28.1. 서버 추가

28.1.1. 개요

서버를 관리하려면 서버를 서버 목록에 추가해야 합니다. 추가된 서버가 서버 보기에 표시되고 여기에 연결하여 Fuse Integration 프로젝트를 게시할 수 있습니다.

참고

Red Hat Fuse 서버를 추가하는 경우 installDir/etc/users.properties 파일을 편집하고 user=password,role 형식으로 사용자 정보를 추가하여 툴링을 활성화하여 서버에 대한 SSH 연결을 설정하는 것이 좋습니다.

28.1.2. 절차

서버 뷰에 새 서버를 추가하는 방법은 세 가지가 있습니다.

  • 서버 보기에서 서버를 사용할 수 없는 서버를 클릭합니다. 새 서버…​ 를 생성하려면 이 링크를 클릭합니다.

    참고

    이 링크는 서버 가 정의되지 않은 경우에만 서버 보기에 표시됩니다. 프로젝트를 처음 만들 때 서버를 정의하고 추가한 경우 서버 보기에 해당 서버 가 표시됩니다.

  • 서버 보기에서 컨텍스트 메뉴를 마우스 오른쪽 버튼으로 클릭하여 서버 를 선택합니다.
  • 메뉴 모음에서 파일기타 → 서버 → 서버 를 선택합니다.

새 서버 정의 대화 상자에서 새 서버를 추가합니다.

  1. Red Hat JBoss Middleware 노드를 확장하여 사용 가능한 서버 옵션 목록을 노출합니다.

    서버 목록
  2. 추가할 서버를 클릭합니다.
  3. 서버의 호스트 이름 필드에서 기본값(localhost)을 수락합니다.

    참고

    localhost 의 주소는 0.0.0.0 입니다.

  4. 서버 이름 필드에 기본값을 수락하거나 런타임 서버의 다른 이름을 입력합니다.
  5. 서버 런타임 환경의 경우 기본값을 수락하거나 추가 를 클릭하여 서버의 런타임 정의 페이지를 엽니다.

    서버 추가
    참고

    서버가 컴퓨터에 설치되어 있지 않은 경우 런타임 다운로드 및 설치...를 클릭하고 사이트의 다운로드 지침에 따라 지금 설치할 수 있습니다. 사이트에 따라 다운로드 프로세스를 계속하기 전에 유효한 인증 정보를 제공해야 할 수 있습니다.

  6. 설치 이름 의 기본값을 수락합니다.
  7. 홈 디렉터리 필드에 서버 런타임이 설치된 경로를 입력하거나 찾아보기 를 클릭하여 찾아 선택합니다.
  8. 실행 환경 옆에 있는 드롭다운 메뉴에서 런타임 JRE를 선택합니다.

    원하는 버전이 목록에 나타나지 않으면 환경을 클릭하고 표시되는 목록에서 버전을 선택합니다. 선택한 JRE 버전이 시스템에 설치되어 있어야 합니다.

    참고

    필수 Java 버전은 Red Hat Fuse 지원 구성 을 참조하십시오.

  9. Alternate JRE 옵션을 그대로 둡니다.
  10. 를 클릭하여 서버의 런타임 정의를 저장하고 구성 세부 정보 페이지를 엽니다.

    UGJBFserverConfigDetails
  11. SSH 포트의 기본값(8101)을 수락합니다.

    런타임은 SSH 포트를 사용하여 서버의 Karaf 쉘에 연결합니다. 이 설정이 잘못된 경우 서버의 installDir/etc/org.apache.karaf.shell.cfg 파일을 확인하여 올바른 포트 번호를 확인할 수 있습니다.

  12. User Name 필드에 서버에 로그인하는 데 사용되는 이름을 입력합니다.

    Red Hat Fuse의 경우 이 이름은 Red Hat Fuse installDir/etc/users.properties 파일에 저장된 사용자 이름입니다.

    참고

    /etc/users.properties 파일에서 기본 사용자가 활성화(commented)된 경우 툴링은 [servCnfig Details] 에 표시된 대로 기본 사용자 이름암호 필드를 사용하여 사용자 이름 및 암호 필드를 자동으로 채웁니다.

    사용자가 설정되지 않은 경우 user=password,role (예: joe=secret,Administrator) 형식을 사용하여 파일에 하나를 추가하거나 karaf jaas 명령 세트를 사용하여 설정할 수 있습니다.

    • JAAS:realms Cryo stat- Cryostatto 영역 목록
    • JAAS:manage --index 1 kafka -ECDHEto edit the first (server) realm
    • JAAS:useradd <username> <password > Cryostat-ECDHE to add a user and associated password
    • JAAS:roleadd <username> Administrator Cryostat- Cryostatto 새 사용자의 역할을 지정
    • JAAS:update Cryostat-property-새 사용자 정보로 영역을 업데이트

    서버에 대해 jaas 영역을 이미 선택한 경우 JBossFuse:karaf@root>jaas: users명령을 실행하여 사용자 이름을 검색할 수 있습니다.

  13. 암호 필드에 User Name 에 필요한 암호를 입력하여 서버에 로그인합니다.
  14. 완료 를 클릭하여 서버의 구성 세부 정보를 저장합니다.

    서버 런타임이 서버 보기에 표시됩니다.

    서버 노드를 확장하면 서버의 Cryostat 노드가 노출됩니다.

    UGnewServrInstalledExpand

28.2. 서버 시작

28.2.1. 개요

구성된 서버를 시작하면 툴링이 터미널 보기에서 서버의 원격 관리 콘솔을 엽니다. 이를 통해 애플리케이션을 테스트하는 동안 컨테이너를 쉽게 관리할 수 있습니다.

28.2.2. 절차

서버를 시작하려면 다음을 수행합니다.

  1. 서버 보기에서 시작할 서버를 선택합니다.
  2. run button 을 클릭합니다.

    • 콘솔 보기가 열리고 컨테이너가 시작되는 동안 대기하라는 메시지가 표시됩니다. 예를 들면 다음과 같습니다.

      UGservrStartConsoleV
      참고

      원격 콘솔을 열기 위해 사용자 이름과 암호를 올바르게 구성하지 않은 경우 적절한 인증 정보를 입력하라는 대화 상자가 열립니다. 28.1절. “서버 추가”을 참조하십시오.

    • 컨테이너가 시작되면 터미널 보기가 열려 컨테이너의 관리 콘솔을 표시합니다.
    • 실행 중인 서버가 서버 보기에 표시됩니다.

      UGservrStartServrsView
    • 실행 중인 서버는 서버 연결 아래 의 Cryostat Navigator 보기에도 나타납니다.

      UGservStartJMXNavView
      참고

      서버가 툴링과 동일한 시스템에서 실행 중인 경우 서버에도 로컬 프로세스에 항목이 있습니다.

28.3. 실행 중인 서버에 연결

28.3.1. 개요

구성된 서버를 시작하면 서버 보기 및 서버 연결 노드 아래 의 Cryostat Navigator 보기에 표시됩니다. 서버를 보려면 서버 연결 노드를 확장해야 할 수 있습니다.

실행 중인 서버에서 Fuse 프로젝트 애플리케이션을 게시하고 테스트하려면 먼저 연결해야합니다. 서버 보기 또는 Cryostat Navigator 보기에서 실행 중인 서버에 연결할 수 있습니다.

참고

Servers 뷰 및 Cryo stat Navigator 뷰는 서버 연결과 관련하여 동기화됩니다. 즉, 서버 보기의 서버에 연결도 해당 서버에 연결되며 그 반대의 경우도 마찬가지입니다.

28.3.2. 서버 보기에서 실행 중인 서버에 연결

  1. 서버 보기에서 서버 런타임을 확장하여 Cryostat [Disconnected] 노드를 노출합니다.
  2. Cryostat [Disconnected] 노드를 두 번 클릭합니다.

    UGservrStartServrsView

28.3.3. Cryostat Navigator 보기에서 실행 중인 서버에 연결

  1. 서버 연결 노드에서 연결하려는 서버를 선택합니다.On the Server Connections node, select the server to which you want to connect.
  2. 선택한 서버를 두 번 클릭합니다.

    UGservConnectJMXNav

28.3.4. 연결된 서버에 설치된 번들 보기

  1. Servers 뷰 또는 Cryostat Navigator 보기에서 서버 런타임 트리를 확장하여 Bundles 노드를 노출하고 선택합니다.
  2. 툴링은 서버에 설치된 번들 목록으로 속성 보기를 채웁니다.

    UGservBundles

    속성 보기의 검색 도구를 사용하여 Symbolic Name 또는 해당 Identifier 를 통해 번들을 검색할 수 있습니다. 심볼릭 이름 또는 식별자를 입력하면 목록이 업데이트되어 현재 검색 문자열과 일치하는 번들만 표시됩니다.

    참고

    또는 터미널 보기에서 osgi:list 명령을 실행하여 Red Hat Fuse 서버 런타임에 설치된 번들 목록을 확인할 수 있습니다. 툴링은 osgi:list 명령으로 표시되는 OSGi 번들에 대해 다른 이름 체계를 사용합니다.

    프로젝트의 pom.xml 파일의 < build > 섹션에서 maven-bundle-plugin 항목에 나열된 번들의 심볼릭 이름과 OSGi를 찾을 수 있습니다. 자세한 내용은 “프로젝트가 서버에 게시되었는지 확인” 에서 참조하십시오.

28.4. 서버에서 연결 해제

28.4.1. 개요

애플리케이션 테스트를 완료하면 중지하지 않고 서버에서 연결을 해제할 수 있습니다.

참고

Servers 뷰 및 Cryo stat Navigator 뷰는 서버 연결과 관련하여 동기화됩니다. 즉, 서버 뷰의 서버에서 연결을 끊고, 그 반대의 경우도 마찬가지입니다.

28.4.2. 서버 보기의 서버에서 연결 해제

  1. Servers 보기에서 서버 런타임을 확장하여 Cryostat [Connected] 노드를 노출합니다.
  2. Cryostat [Connected] 노드를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 연결 끊기 를 선택합니다.

    연결 해제

28.4.3. Cryostat Navigator 보기의 서버에서 연결 해제

  1. 서버 연결 에서 Cryostat Navigator 보기의 연결을 해제할 서버를 선택합니다.
  2. 선택한 서버를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 연결 끊기 를 선택합니다.

    연결 해제sh

28.5. 서버 중지

28.5.1. 개요

서버 보기 또는 터미널 보기에서 서버의 원격 콘솔에서 서버를 종료할 수 있습니다.

28.5.2. 서버 보기 사용

서버를 중지하려면 다음을 수행합니다.

  1. 서버 보기에서 중지할 서버를 선택합니다.
  2. stop button 을 클릭합니다.

28.5.3. 원격 콘솔 사용

서버를 중지하려면 다음을 수행합니다.

  1. 서버의 원격 콘솔을 호스팅하는 터미널 보기를 엽니다.
  2. press: CTRL+D

28.6. 서버 삭제

28.6.1. 개요

구성된 서버 또는 서버를 잘못 구성하는 경우 해당 서버와 구성을 삭제할 수 있습니다.

먼저 서버 보기 또는 Cryo stat Navigator 보기에서 서버 삭제합니다. 다음으로 서버의 구성을 삭제합니다.

28.6.2. 서버 삭제

  1. 서버 보기에서 삭제할 서버를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. 삭제를 선택합니다.
  3. OK를 클릭합니다.

28.6.3. 서버 구성 삭제

  1. 메뉴 모음에서 CodeReady StudioPreferencesServer 를 선택합니다.

    참고

    Linux 및 Windows 시스템에서 기본 설정을 선택합니다.

  2. 서버 폴더를 확장한 다음 런타임 환경을 선택하여 서버 런타임 환경 페이지를 엽니다.
  3. 목록에서 이전에 서버 보기에서 삭제한 서버의 런타임 환경을 선택한 다음 제거를 클릭합니다.
  4. OK를 클릭합니다.

29장. Fuse Integration Projects를 서버에 게시

Eclipse 게시 메커니즘을 사용하여 Fuse Integration 프로젝트를 서버 런타임에 배포합니다. 이렇게 하려면 Fuse 통합 관점에서 서버를 정의하고 서버 보기에 추가해야 합니다. 단계별 데모는 를 참조하십시오.

29.1. 개요

할당된 Fuse 프로젝트를 자동으로 게시하도록 지원되는 서버를 설정하거나 publish 명령을 수동으로 호출할 때만 게시할 수 있습니다.

서버 뷰에 추가된 각 서버 런타임에는 구성, 연결 및 게시 세부 정보가 포함된 자체 개요 페이지가 있습니다.

UGservRuntimeOverviewTab

게시를 확장하여 서버 런타임 게시 옵션 및 기본 설정을 노출해야 할 수 있습니다.

  • 프로젝트를 수동으로 게시하려면 이 옵션을 선택해야 합니다.You must select this option to manually publish projects.

    중요

    또한 서버를 시작한 경우 서버의 추가 및 제거 페이지에 변경 사항을 즉시 게시 해야 합니다(자세한 내용은 “수동으로 Fuse 프로젝트 게시” 참조).

  • 리소스가 변경 되면 자동으로 게시됩니다. 이 옵션을 사용하면 변경 사항을 저장할 때 Fuse 프로젝트를 자동으로 게시하거나 다시 게시할 수 있습니다. 게시 간격(기본값: 15초)에 따라 프로젝트를 게시 하는 속도가 빨라집니다.
  • 빌드 이벤트 Cryostat - CryostatFor Fuse 프로젝트는 리소스가 변경될 때 자동으로 게시 되는 것과 동일하게 작동합니다.

29.2. 리소스가 변경될 때 자동으로 Fuse 프로젝트 게시

서버 런타임의 기본 게시 옵션은 리소스가 변경될 때 자동으로 게시됩니다.

  1. 필요한 경우 Fuse 프로젝트를 게시할 서버 런타임을 시작합니다. 자세한 내용은 28.2절. “서버 시작”의 내용을 참조하십시오.
  2. 서버 보기에서 서버 런타임을 두 번 클릭하여 개요 페이지를 엽니다.
  3. 게시 를 확장한 다음 리소스가 변경될 때 자동으로 게시 를 선택합니다.
  4. 게시 주기 간 간격을 늘리거나 줄이려면 필요에 따라 게시 간격(초) 옆에 있는 라디오 버튼을 클릭합니다.
  5. 서버 보기에서 서버 런타임을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 추가 및 제거를 선택합니다.

    UGservAddRemove1

    게시에 사용할 수 있는 모든 리소스가 Available 열에 표시됩니다.

  6. 서버 런타임에 리소스(이 경우 CBRroute Fuse 프로젝트)를 할당합니다.

    • 두 번 클릭 또는
    • 이를 선택하고 추가 를 클릭합니다.

      선택한 리소스는 Configured 열로 이동합니다.

      UGservAddRemove2

      이 단계에서는 할당된 리소스가 실제로 게시되는 시간은 서버 런타임이 실행 중인지와 게시 간격 설정에 따라 달라집니다. 그러나 서버가 중지된 경우 서버를 시작한 후 프로젝트를 수동으로 게시해야 합니다(자세한 내용은 “수동으로 Fuse 프로젝트 게시”참조).

  7. 서버가 시작된 경우 즉시 변경 사항을 게시 하여 활성화합니다.

    UGservAddRemove3

    이 옵션을 사용하면 완료 를 클릭하면 구성된 프로젝트가 즉시 게시됩니다. 서버 런타임 개요 페이지에서 리소스 변경 옵션을 자동으로 게시하면 로컬 프로젝트에 대한 변경 사항을 저장할 때마다 구성된 프로젝트가 다시 게시됩니다.

  8. 완료를 클릭합니다.

    이 프로젝트는 서버 런타임 노드의 Servers 뷰에 표시되고 서버 런타임 상태는 [Started,Publishing…​].

    게시가 완료되면 서버 런타임과 프로젝트 보고서의 상태는 [Started,Synchronized]:

    UGservPublishSynched
    참고

    서버 런타임의 경우 Synchronized 는 서버의 모든 게시된 리소스가 해당 로컬 카운터와 동일하다는 것을 의미합니다. 게시된 리소스의 경우 Synchronized 는 로컬과 동일한 것을 의미합니다.

29.3. 수동으로 Fuse 프로젝트 게시

  1. 필요한 경우 Fuse 프로젝트를 게시할 서버 런타임을 시작합니다. 자세한 내용은 28.2절. “서버 시작”의 내용을 참조하십시오.
  2. 서버 보기에서 서버 런타임을 두 번 클릭하여 개요 페이지를 엽니다.
  3. 게시 를 확장한 다음 자동으로 게시 를 선택합니다.
  4. 파일저장을 클릭하여 게시 옵션 변경 사항을 저장합니다.
  5. Fuse 프로젝트가 이미 서버 런타임에 할당된 경우 이 옵션이 비활성화되었는지 확인합니다. 서버가 시작된 경우 즉시 변경 사항을 게시합니다.

    1. 서버 보기에서 서버 런타임을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
    2. Add and Remove…​ 을 클릭하여 서버의 추가 및 제거 페이지를 엽니다.
    3. 다음 옵션이 활성화된 경우 비활성화: 서버가 시작되면 변경 사항을 즉시 게시합니다.
    4. [완료] 으로 건너뜁니다.
  6. Fuse 프로젝트가 서버 런타임에 할당되지 않은 경우 지금 할당합니다.

    1. [startAssignResource] 에서 [stopAssignResource] 을/를 통해 확인할 수 있습니다. “리소스가 변경될 때 자동으로 Fuse 프로젝트 게시”
    2. 서버를 시작한 경우 변경 사항을 즉시 게시합니다.
  7. 를 클릭합니다.

    프로젝트가 서버 런타임 노드의 서버 보기에 표시되고 서버 런타임 상태가 [Started]:

    UGservPublishSynched
  8. Servers 보기에서 프로젝트의 노드를 마우스 오른쪽 버튼으로 클릭합니다. 이 예에서는 CBRroute Fuse 프로젝트를 선택하여 컨텍스트 메뉴를 엽니다.

    UGassgnProjSrvViewCntxtMnu
  9. Full Publish 를 선택합니다.

    게시 작업 중에 서버 런타임과 프로젝트 보고서의 상태는 [Started,Republish] 입니다.

    게시가 완료되면 서버 런타임과 프로젝트 보고서의 상태는 [Started,Synchronized]:

    참고

    툴링은 Incremental Publish 옵션을 지원하지 않습니다. 증분 게시 를 클릭하면 전체 게시가 생성됩니다.

29.4. 프로젝트가 서버에 게시되었는지 확인

서버 런타임에 Fuse 프로젝트를 게시한 후 서버에 연결하여 프로젝트의 번들이 설치되어 있는지 확인할 수 있습니다.

  1. 서버 런타임에 연결합니다. 자세한 내용은 “서버 보기에서 실행 중인 서버에 연결” 에서 참조하십시오.
  2. Servers 보기에서 서버 런타임 트리를 확장하여 Bundles 노드를 노출하고 선택합니다.

    툴링은 서버에 설치된 번들 목록으로 속성 보기를 채웁니다.

    UGsrvVerifyPublishedProj
  3. 프로젝트의 번들을 찾으려면 목록 맨 아래로 스크롤하거나 속성 보기의 검색 상자에 번들의 Symbolic Name 을 입력합니다. 번들의 Symbolic 이름은 프로젝트를 만들 때 지정한 이름입니다.

    참고

    또는 터미널 보기에서 osgi:list 명령을 실행하여 Fuse 서버 런타임에 설치된 번들 목록을 확인할 수 있습니다. 툴링은 osgi:list 명령으로 표시되는 OSGi 번들에 대해 다른 이름 체계를 사용합니다.

    프로젝트의 pom.xml 파일의 < build > 섹션에서 maven-bundle-plugin 항목에 나열된 번들의 심볼릭 이름과 OSGi를 찾을 수 있습니다. 예를 들면 다음과 같습니다.

    ugBundleNamesPomFile

부록 A. Fuse 통합 관점

Fuse 통합 화면을 사용하여 통합 애플리케이션을 설계, 모니터링, 테스트 및 게시합니다.

Fuse Integration 모드

다음과 같은 방법으로 Fuse Integration 화면을 열 수 있습니다.

  • 새 Fuse 통합 프로젝트( 1장. 새 Fuse 통합 프로젝트 생성참조)를 생성하면 툴링이 Fuse 통합 화면으로 전환됩니다.
  • CodeReady Studio 툴 모음 오른쪽에 있는 integration perspective 를 클릭합니다. 툴 모음에서 integration perspective 아이콘을 사용할 수 없는 경우 new persp 를 클릭하고 사용 가능한 화면 목록에서 Fuse Integration 을 선택합니다.
  • WindowPerspectiveOpen PerspectiveFuse Integration 을 선택합니다.

Fuse Integration 관점은 9개의 주요 영역으로 구성되어 있습니다.

  • 프로젝트 Explorer 보기

    툴에 알려진 모든 프로젝트를 표시합니다. 각 프로젝트를 구성하는 모든 아티팩트를 볼 수 있습니다. Project Explorer 보기에는 Camel Contexts 노드 아래에 프로젝트의 모든 라우팅 컨텍스트 .xml 파일도 표시됩니다. 이를 통해 프로젝트에 포함된 라우팅 컨텍스트 파일을 찾아서 열 수 있습니다. 각 라우팅 컨텍스트 .xml 파일에 Project Explorer 보기에 컨텍스트 내에 정의된 모든 경로가 표시됩니다. 다중 경로 컨텍스트의 경우 이를 통해 캔버스의 특정 경로에 집중할 수 있습니다.

    ProjectExplorerFIP
  • 경로 편집기

    기본 디자인 타임 툴링을 제공하고 세 개의 탭으로 구성됩니다.

    • 경로가 구성된 대규모 그리드 영역과 EIP(Enterprise Integration Patterns) 및 Camel 구성 요소가 선택된 팔레트(Enterprise Integration Patterns) 및 Camel 구성 요소를 선택한 다음 캔버스에 연결하여 경로를 형성합니다.

      CanvasPalette

      캔버스는 경로 편집기의 워크벤치이며 대부분의 작업을 수행하는 곳입니다. 연결된 EIP 및 Camel 구성 요소로 구성된 하나 이상의 경로의 그래픽 표시를 표시합니다(노드가 캔버스에 배치되면 노드라고 함).

      캔버스에서 노드를 선택하면 선택한 노드에 적용되는 속성으로 속성 보기가 채워지므로 편집할 수 있습니다.

      결승점에는 라우팅을 구성하는 데 필요한 모든 패턴 및 Camel 구성 요소가 포함되어 있습니다. 이 구성 요소는 function Cryostat- components ,Routing,Control Flow, Cryostat 및 Miscellaneous.

    • 소스

      경로 편집기의 캔버스에 구성된 경로에 대한 .xml 파일의 내용을 표시합니다.

      Source 탭과 디자인 탭에서 라우팅 컨텍스트를 편집할 수 있습니다. 소스 탭은 구성, 주석 또는 빈을 라우팅 컨텍스트 파일에 편집하고 추가하는 데 유용합니다. 콘텐츠 지원 기능은 구성 파일을 사용할 때 도움이 됩니다. 소스 탭에서 Ctrl+Space 눌러 프로젝트에 삽입할 수 있는 가능한 값 목록을 확인합니다.

      SourceView
    • 구성

      다중 경로 라우팅 컨텍스트에 공유 구성(글로벌 엔드포인트, 데이터 형식, 빈)을 쉽게 추가할 수 있는 방법을 제공합니다. 자세한 내용은 2.6절. “글로벌 끝점, 데이터 형식 또는 빈 추가” 에서 참조하십시오.

      CnfigsVAddButton
    • REST

      Rest DSL 구성 요소의 그래픽 표현을 제공합니다.

      RESTtab
  • 속성 보기

    캔버스에서 선택한 노드의 속성을 표시합니다.

  • Cryostat Navigator 보기

    Cryostat 서버와 모니터링 중인 인프라를 나열합니다. 이를 통해 Cryostat 서버와 모니터링 시 필요한 정보를 탐색할 수 있습니다. 또한 Red Hat 프로세스 인스턴스를 식별합니다.

    Cryo stat Navigator 보기는 Fuse Integration 관점에서 모든 모니터링 및 테스트 활동을 구동합니다. 다이어그램 보기, 속성 보기메시지 보기에 표시되는 경로를 결정합니다. 또한 경로 추적 활성화, JMS 대상 추가 및 삭제, 경로 시작 및 일시 중지를 위한 메뉴 명령을 제공합니다. 또한 메시지를 경로에 드래그 앤 드롭하는 대상이기도 합니다.

    기본적으로 Cryostat Navigator 보기에는 로컬 시스템에서 실행 중인 모든 Java 프로세스가 표시됩니다. 필요에 따라 Cryostat 서버를 추가하여 다른 시스템의 인프라를 볼 수 있습니다.

  • 다이어그램 보기

    Cryostat Navigator 보기에서 선택한 노드를 나타내는 그래픽 트리 를 표시합니다. 프로세스, 서버, 끝점 또는 기타 노드를 선택할 때 다이어그램 보기에 선택한 노드가 하위 및 후보에게 분기되는 루트로 표시됩니다.

    브로커를 선택하면 다이어그램 보기에 최대 3개의 자식(연결, 주제 및 대기열)이 표시됩니다. 또한 구성된 연결 및 대상을 할아버지로 표시합니다.

    경로를 선택하면 다이어그램 보기 가 경로의 모든 노드를 표시하고 메시지가 경로를 통해 취할 수 있는 다양한 경로를 표시합니다. 또한 경로 추적이 활성화된 경우 경로의 각 처리 단계에 대한 타이밍 지표를 표시합니다.

  • 메시지 보기

    경로 추적이 활성화된 경우 선택한 JMS 대상 또는 Apache Camel 끝점을 통해 전달한 메시지를 나열합니다.

    JMS 대상이 선택한 경우 , view 는 대상에 있는 모든 메시지를 나열합니다.

    경로 추적을 활성화하면 메시지 보기에 추적이 시작된 이후 경로의 노드를 통해 전달되는 모든 메시지가 나열됩니다. 관심 있는 데이터와 기본 순서로만 표시하도록 메시지 뷰 를 구성할 수 있습니다.

    메시지 뷰의 메시지 추적을 선택하면 해당 세부 정보(메시지 본문 및 모든 메시지 헤더)가 속성 보기에 표시됩니다. 다이어그램 보기에서 선택한 메시지 추적과 연결된 경로의 단계가 강조 표시됩니다.

  • 서버 보기

    툴에서 관리하는 서버 목록을 표시합니다. 런타임 상태를 표시하고, 추가, 시작 및 중지하며 프로젝트에 게시하기 위한 제어를 제공합니다.

  • 터미널 보기

    연결된 컨테이너의 명령 콘솔을 표시합니다. 터미널 보기에 명령을 입력하여 컨테이너를 제어할 수 있습니다.

  • 콘솔

    최근 실행된 작업의 콘솔 출력을 표시합니다.

부록 B. 디버그 관점

디버그 화면을 사용하여 실행 중인 Camel 컨텍스트를 모니터링하고 디버깅합니다.

Camel 컨텍스트 디버거
  • 디버그 보기

    실행 중인 Camel 컨텍스트의 경우 디버그 보기에 디버그 스택이 표시됩니다.

    service:jmx:rmi://jndi/rmi://localhost:1099/jmxrmi/camel 항목의 Camel 컨텍스트 아래에 나열된 동일한 메시지 흐름 내에서 Cryostat를 전환하여 변수 뷰의 변수 값을 검토하고 비교할 수 있습니다.

    메시지 흐름은 고유한 이동 경로 ID로 식별되며 이후의 각 메시지 흐름의 이동 경로 ID는 2로 증가합니다. 예를 들어, 첫 번째 메시지 흐름에 대한 이동 경로 ID가 ID-janemurpheysmbp-home-54620-1470949590275-0-1 인 경우 두 번째 메시지 흐름의 이동 경로 ID는 ID-janemurpheysmbp-home-54620-14709495275-0-3 입니다.

  • 변수 보기

    Cryostat가 설정된 라우팅 컨텍스트의 각 노드에 대해 Cryostat가 도달할 때 변수 보기에 사용 가능한 변수의 값이 표시됩니다. 이전 Cryostat 이후 변경된 각 변수는 노란색으로 강조 표시됩니다.

    편집 가능한 변수의 값을 변경하여 이러한 변경 사항이 예상 결과를 생성하는지 확인하고 라우팅 컨텍스트의 견고성을 테스트할 수 있습니다.

    또한 감시 목록에 변수를 추가할 수 있으므로 메시지 흐름의 예상 시점에서 값이 예상대로 변경되는지를 빠르고 쉽게 확인할 수 있습니다.

  • Cryostats

    라우팅 컨텍스트에 설정된 Cryostat 목록을 표시하고 활성화되어 있는지 여부를 표시합니다. 개별 Cryostat를 활성화 및 비활성화하여 (활성화) 또는 이를 검사(비활성화)하여 비활성화할 수 있습니다. 이를 통해 문제가 발생하는 라우팅 컨텍스트의 노드에 일시적으로 집중할 수 있습니다.

    resume co 버튼은 비활성화된 Cryostat를 통해 건너뛰어 라우팅 컨텍스트에서 다음 활성 Cryostat로 이동합니다. 반대로 stepover co 버튼은 Cryostat에 관계없이 라우팅 컨텍스트에서 다음 실행 노드로 이동합니다.

  • Camel Context.xml 보기

    그래픽 모드에서 실행 중인 라우팅 컨텍스트 파일을 표시합니다. Cryostats로 설정된 노드의 경우 개체 집합 유형 및 Cryostat를 사용하도록 설정하거나 사용하지 않도록 설정할지 여부를 보여 줍니다.For nodes set with Cryostats, it shows the type of Cryostat set and whether the Cryostat is enabled or disabled. Cryostat에 도달하면 캔버스의 해당 노드가 빨간색으로 요약됩니다.

    노드의 구성을 확인하려면 속성 보기를 열고 camel Context.xml 의 캔버스에서 노드를 선택합니다.

  • 콘솔

    라우팅 컨텍스트를 실행할 때 Camel 디버거에서 생성한 로그 출력을 표시합니다.

  • 속성 보기

    CamelContext.xml 의 캔버스에서 선택한 노드에 대해 설정된 속성을 표시합니다.

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.