툴링 사용자 가이드


Red Hat Fuse 7.11

CodeReady Studio에서 Fuse Tooling을 사용하여 Fuse 애플리케이션을 개발 및 배포

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 종속성을 포함하여 애플리케이션에 대한 프로젝트를 생성
  • Enterprise Integration Patterns를 연결 및 구성하여 라우트를 구축합니다.
  • 끝점 및 경로 검색
  • 실행 중인 경로에 메시지 드래그 앤 드롭
  • JMX를 통해 런타임 프로세스 검색 및 시각화
  • 로컬로 실행 중인 Camel 컨텍스트 및 경로 디버그
  • 다음을 통해 애플리케이션을 테스트합니다.

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

새로 운 사용자의 경우, 툴링 튜토리얼 은 샘플 Camel 애플리케이션을 생성, 디버그, 테스트 및 배포하는 방법에 대한 단계별 지침을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지에서 참조하십시오.

I 부. 애플리케이션 개발

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

1.1. 개요

새로운 Fuse Integration 프로젝트를 생성하려면 다음 주요 단계를 수행해야 합니다.

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

1.2. 시작하기 전

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

  • 대상 런타임 환경: OpenShift 또는 Fuse 독립 실행형 Fuse(Spring Boot, Karaf의 Fuse 또는 EAP의 Fuse)
  • Camel 버전(기본 툴링이 아닌 경우)

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

새로운 Fuse Integration 프로젝트를 만들려면 다음 단계를 따르십시오.

  1. 프로젝트Red Hat FuseFuse 통합 프로젝트 를 선택하여 새 Fuse Integration Project 마법사를 엽니다.

    마법사가 열리고 위치 창에서 선택한 기본 작업 공간 위치 사용 옵션이 열립니다.

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

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

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

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

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

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

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

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

    NFPcamelVersion

    배포 플랫폼에 대해 Kubernetes/OpenShift 를 선택하면 Sprint Boot 런타임이 자동으로 선택되며 3 단계로 건너뛸 수 있습니다.

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

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

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

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

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

      Verify( 확인 ) 버튼을 클릭하여 툴링이 지정된 버전에 액세스할 수 있는지 확인할 수 있습니다. 그렇지 않은 경우 대상 런타임 선택 페이지 헤더에 다음 예제와 유사한 알림이 표시됩니다.If not, a notification similar to the following example appears in the Select a Target Runtime page header:

      Camel 확인
      참고

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

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

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

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

  1. 마법사의 대상 런타임 선택 페이지에서 새로 만들기를 클릭하여 새 서버 런타임 환경 페이지를 엽니다.From the Select a Target Runtime page, click New to open the New server runtime environment page:

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

    Create a new local server 옵션을 선택 취소합니다. 나중에 프로젝트를 게시할 준비가 되면 로컬 서버를 생성할 수 있습니다( 27.1절. “서버 추가”참조).

    참고

    Create a new local server (새 로컬 서버 만들기) 옵션을 선택하면 New Fuse Integration Project 마법사에서 Fuse 서버 런타임을 정의하고 구성하는 추가 단계를 안내합니다( 27.1절. “서버 추가”설명됨). 그런 다음 프로젝트를 빌드할 때 Fuse 통합 관점에서 서버 런타임도 서버 보기에 추가합니다.

  3. Next 를 클릭하여 서버의 New Server Runtime Environment 페이지를 엽니다.

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

    • 기본값을 승인하거나 런타임 환경에 새 이름을 입력합니다.
    • Home Directory additional-additionalClick the Browse 버튼을 클릭하여 서버 런타임의 설치 디렉토리를 찾아서 선택합니다.

      참고

      서버가 컴퓨터에 아직 설치되어 있지 않은 경우, Download and install runtime link를 클릭한 다음 사이트의 다운로드 지침을 따라 지금 설치할 수 있습니다. 사이트에 따라 다운로드 프로세스를 계속 진행하기 전에 유효한 자격 증명을 제공해야 할 수 있습니다.Depending on the site, you might be required to provide valid credentials before you can continue the download process.

    • 런타임 JRE: 실행 환경(sue- Execution Environment )은 기본값을 승인하거나 드롭다운 목록에서 다른 JavaSE 버전을 선택합니다.

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

      참고

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

    • Runtime JRE: Alternate JRE - 프로젝트에 다른 Java 버전이 필요한 경우 이 옵션을 사용할 수 있습니다.
  5. Finish (완료)를 클릭하여 New Fuse Integration Project 마법사의 Select a Target Runtme 페이지로 돌아갑니다.

    새로 구성된 대상 런타임이 Target Runtime (대상 런타임) 창의 드롭다운 메뉴에 표시되고 런타임에서 지원하는 Camel 버전이 Camel 버전 창에 표시됩니다.

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

  6. Next 를 클릭하여 “프로젝트 템플릿 선택” 에 설명된 대로 프로젝트 템플릿을 지정합니다.

1.5. 프로젝트 템플릿 선택

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

  • OpenShift의 Fuse에는 Spring Boot에서 Spring XML 구성 파일을 사용하여 Camel 경로를 구성하는 방법을 설명하는 단일 템플릿이 있습니다. 이 템플릿은 Fuse Integration 프로젝트를 생성하고 2.18.1.redhat-000012 보다 최신 Camel 버전이 필요합니다.

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

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

    nfpTemplateEAP
  • Karaf 또는 Karaf의 Fuse 의 경우 템플릿을 선택할 수 있습니다. 지원되는 세 가지 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. 완료를 클릭합니다.

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

        Fuse Integration 관점이 아직 열려 있지 않으면 툴링에서 지금 전환할지 여부를 요청합니다.

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

        nfpTemplateProjectOpen

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

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

        nfpTemplateCBRsource
참고

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

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

1.6. Maven 종속성 오류 해결

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

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

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

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

    • 하나 이상의 항목이 마법사 목록에 표시되는 경우 업데이트할 프로젝트를 선택합니다.
    • Snapshots/Releases의 강제 업데이트 를 클릭하여 활성화합니다.
  4. OK를 클릭합니다.

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

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

The following sections describe how to edit a routing context.

2.1. 경로에 패턴 추가

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

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

  • Bluedatabind-databindRoute 컨테이너: 컨텍스트 파일의 경로 요소 및 기타 컨테이너 노드(예: 논리를 완료하는 다른 EIP가 포함된 경우달리 EIP)에 해당합니다.
  • 자주 묻는 질문
  • 데이터 전송 경로의 흐름을 라우팅, 변환, 프로세스 또는 제어하는 Orange>-<EIPs
  • 데이터 종료 경로를 출력하는 PurpleECDHE-databindProducer 끝점

2.1.1. 절차

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

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

    • Palette 에서 패턴을 클릭한 다음 캔버스에서 경로 컨테이너를 클릭합니다.
    • 대상 Route 컨테이너를 통해 패턴을 끌어서 놓습니다.

      또는 발신 연결이 없는 기존 노드에 패턴을 추가하거나 두 노드 간의 연결이 이미 있는 경우 툴링이 관련된 모든 노드 간에 자동으로 연결됩니다.

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

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

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

      참고

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

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

    끝점을 다시 지정하는 방법을 보여주는 짧은 비디오를 보려면 여기 를 클릭하십시오.

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

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

2.1.2. 레이아웃 방향 변경

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

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

  • Linux 및 Windows 머신 경우 Windows → preference → Fuse ToolingEditor다이어그램 편집기의 레이아웃 방향을 선택합니다.

2.2. 패턴 구성

2.2.1. 개요

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

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

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

2.2.2. 절차

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

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

    속성 뷰에는 편집할 선택한 노드의 모든 속성이 나열됩니다. EIP의 경우 세부 정보 탭에 패턴의 모든 속성이 나열됩니다. Components drawer의 구성 요소의 경우 세부 정보 탭에는 일반 속성과 값이 필요한 항목이 나열되고 고급 탭에는 함수에 따라 그룹화된 추가 속성이 나열됩니다.

    Documentation 탭에서는 패턴과 각 속성에 대해 설명합니다.

  2. Properties view의 필드를 편집하여 노드를 구성합니다.
  3. 완료되면 메뉴 표시줄에서 파일저장을 선택하여 작업을 저장 합니다.

2.3. 경로에서 패턴 제거

2.3.1. 개요

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

참고

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

2.3.2. 절차

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

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

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

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

2.4.1. 개요

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

2.4.2. 절차

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

  1. 디자인 탭에서 다음 중 하나를 수행합니다.In the Design tab, do one of the following:

    • PaletteRouting drawer에서 Route 패턴을 클릭한 다음 경로를 배치할 캔버스를 클릭합니다.
    • PaletteRouting drawer에서 경로 패턴을 끌어서 캔버스에 놓습니다.

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

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

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

      참고

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

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

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

    참고

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

2.5. 경로 삭제

2.5.1. 개요

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

참고

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

중요

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

2.5.2. 절차

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

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

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

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

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

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

2.6.1. 개요

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

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

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

    ConfigurationsView
  3. 추가 를 클릭하여 새 전역 요소 만들기 대화 상자를 엽니다.Click Add to open the Create a new global element dialog.

    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
    참고

    기본적으로 구성 요소 선택 대화 상자가 표시됩니다.By default, the Select component dialog opens with the Show only palette components. 사용 가능한 모든 구성 요소를 보려면 이 옵션을 선택 취소합니다.

    참고

    범주별 옵션 그룹 구성 요소는 유형별로 그룹화됩니다.

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

    CnfigsVCamComponentSelected

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

  3. 완료를 클릭합니다.

    CnfigsVmyEndptAdded2

    필요에 따라 속성 보기에서 속성을 설정할 수 있습니다.You can now set properties in the Properties view as needed.

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

    참고

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

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

    JMSCompAdvanPathProp

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

  6. Consumer(advanced) 탭을 클릭합니다.

    JMSCompConsumerAdvanProps2

    속성 Eager Loading Of PropertiesExpose Listener Session 을 활성화합니다.

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

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

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

  1. 새 전역 요소 만들기 대화 상자에서 데이터 형식을 선택하고 확인을 클릭하여 글로벌 데이터 형식 만들기 대화 상자를 엽니다.In the Create a new global element dialog, select Data Format and click OK to open the Create a global Data Format dialog.

    CnfigsVCreateGlobalDF1

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

  2. 데이터 형식 드롭다운 메뉴를 열고 원하는 형식(예: xmljson)을 선택합니다.Open the Data Format drop-down menu, and select the format you want, for example, xmljson.
  3. Id 필드에 형식 이름을 입력합니다(예: myDataFormat).

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

    CnfigsVEditGlobalDFprops1
  5. 속성 뷰에서 프로젝트에 적합한 속성 값을 설정합니다.In the Properties view, set property values as appropriate for your project, for example:

    CnfigsVEditGlobalDFprops2
  6. 경로 편집기에서 소스 탭을 클릭하여 컨텍스트 파일에 툴링이 추가된 코드를 확인합니다. 이 예에서는 구성된 xmljson 데이터 형식이 첫 번째 경로 요소 앞에 있습니다.In this example, a configured xmljson data format is before the first route element.

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

2.6.4. 글로벌 빈 추가

글로벌 빈에서는 경로의 어디에서나 참조할 수 있는 라우팅 빈 정의를 활성화합니다. 팔레트에서 경로로 구성 요소를 복사하는 경우 속성 보기의 Ref 드롭다운에서 정의된 글로벌 빈을 찾을 수 있습니다. 빈 구성 요소를 참조하도록 글로벌 을 선택합니다.

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

  1. Create a new global element (새 글로벌 요소 생성) 창에서 Bean 을 선택하고 OK (확인)를 클릭하여 빈 정의 대화 상자를 엽니다.

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

    팩토리 빈을 지정하려면 팩토리 클래스가 지정된 다른 글로벌 빈을 이미 추가해야 합니다. 그런 다음 전역 빈 팩토리를 선택하여 전역 빈 팩토리로 선언할 수 있습니다. 빈 팩토리 클래스의 한 인스턴스는 런타임에 있습니다. 다른 글로벌 빈에서는 해당 클래스에서 팩토리 메서드를 호출하여 다른 클래스의 자체 인스턴스를 생성할 수 있습니다.

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

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

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

    1. 추가를 클릭합니다.
    2. 이름 필드에 속성 이름을 입력합니다.
    3. Value 필드에 속성 값을 입력합니다.In the Value field, enter the value of the property.
    4. OK를 클릭합니다.
  6. Finish (완료)를 클릭하여 글로벌 빈을 구성에 추가합니다. 지정한 글로벌 빈 ID가 Configurations 탭에 표시됩니다. 예를 들면 다음과 같습니다.

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

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

    CnfigsBeanProperties
    참고

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

  9. 필요에 따라 전역 빈 속성을 설정합니다.

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

2.6.5. 전역 요소 삭제

이 절차는 이전에 라우팅 컨텍스트에 추가된 끝점, 데이터 형식 또는 빈을 제거하는지에 관계없이 동일합니다.

참고

전역 요소를 삭제하기 위해 실행 취소 작업을 수행할 수 없습니다. 구성에 유지하려는 전역 요소를 실수로 삭제한 경우 해당 컨텍스트 파일을 저장하지 않고 삭제를 취소할 수 있습니다. 이것이 가능하지 않은 경우 실수로 삭제된 전역 요소를 다시 추가합니다.

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

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

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

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

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

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

2.6.6. 전역 요소 편집

이 절차는 라우팅 컨텍스트에 추가한 끝점, 데이터 형식 또는 빈의 속성을 수정하는지에 관계없이 동일합니다.

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

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

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

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

    CnfigsVEndptClickEdit

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

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

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

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

2.7. 경로 편집기 구성

2.7.1. 개요

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

  • EIP(Enterprise Integration Patterns)의 식에 사용할 기본 언어
  • 루트를 생성할 때 디자인 캔버스에서 패턴이 이동하는 방향(오른쪽 또는 아래로)
  • Design canvas가 캔버스의 백그라운드에서 그리드 오버레이를 표시하는지 여부입니다.
  • Design canvas에서 노드를 라벨을 지정하는 방법

2.7.2. 절차

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

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

    • Linux 및 Windows 머신에서 Windows → 기본 설정 → Fuse ToolingEditor 를 선택합니다.

    PreferencesEditor

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

    이 옵션을 확인하고 구성 요소에 대한 기본 레이블도 지정하는 경우(단계 6)를 참조하면 ID 값 대신 해당 구성 요소에 기본 레이블이 사용됩니다.

  6. 경로 편집기의 설계 탭에서 구성 요소( 파일 노드와 같은 끝점)의 라벨로 매개 변수를 사용하려면 다음을 수행합니다.

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

      NewPreferredLabel

    2. Component 를 선택한 다음 구성 요소의 라벨로 사용할 Parameter 를 선택합니다.
    3. OK를 클릭합니다. 구성 요소 및 매개 변수 쌍은 Editor Preferences 창에 나열되어 있습니다.

      PreferredLabelsList

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

      참고

      구성 요소 라벨에 대한 ID 값 사용 옵션을 선택하면 Preferred 라벨 섹션에 나열된 구성 요소를 제외한 모든 구성 요소에 적용됩니다.

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

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

3장. 가장 높은 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 툴을 사용하면 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 Context 파일을 엽니다.
  2. REST 탭을 클릭하여 가장 높은 DSL 구성 요소를 확인합니다.

    RESTtab

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

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

    RESTproperties

3.2. 그래픽 보기에서 가장 높은 DSL 구성 요소 편집

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

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

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

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

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

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

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

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

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

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

    RESTsourcetab
  3. 필요한 경우 REST 탭을 클릭하여 그래픽 보기의 변경 사항을 확인합니다.
  4. 변경 사항을 저장하려면 파일저장 을 선택합니다.

4장. 새 Apache Camel JUnit 테스트 사례 생성

4.1. 개요

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

참고

상용구 JUnit 테스트 케이스를 생성한 후 생성 또는 수정된 경로에 대한 기대와 어설션을 추가하도록 수정해야 합니다. 따라서 테스트가 경로에 유효하게 됩니다.

4.2. 사전 요구 사항

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

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

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

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

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

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

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

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

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

    < project_root>/srcEnter에 나타나는지 확인하거나 상위 폴더 필드를 선택합니다.

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

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

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

4.5. JUnit 테스트 케이스 생성

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

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

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

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

    또는 메뉴 표시줄에서 파일기타 > Fuse > Camel 테스트 케이스 를 선택하여 마법사를 열 수 있습니다.

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

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

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

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

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

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

  6. 이름에서 생성된 테스트 클래스의 기본 이름 을 수락하거나 다른 이름을 입력합니다.
  7. 생성된 코드에 포함할 메서드 스텁을 선택합니다.Select the method stubs you want to include in the generated code.
  8. 생성된 코드에 기본 생성된 주석을 포함하려는 경우 주석 생성 확인란을 선택합니다.If you want to include the default generated comments in the generated code, check the Generate comments box.
  9. Next button 을 클릭하여 테스트 끝점 페이지를 엽니다. 예를 들어 그림 4.2. “새로운 Camel JUnit 테스트 케이스 페이지” 은 선택한 경로의 입력 및 출력 파일 끝점을 보여줍니다.

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

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

    참고

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

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

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

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

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

5.1.1. 개요

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

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

5.1.2. 절차

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

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

    참고

    로컬 Camel 컨텍스트(테스트 없이)를 선택하면 검증 테스트 를 수행하지 않고 프로젝트를 실행할 수 있으므로 더 빠르게 프로젝트를 실행할 수 있습니다.

5.1.3. 결과

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

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

5.2.1. 개요

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

5.2.2. 절차

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

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

    1. Maven을 사용하여 처음으로 프로젝트를 실행하면 Edit Configuration and launch 편집기가 열리고 Maven 런타임 프로필을 생성할 수 있습니다.

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

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

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

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

        중요

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

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

5.2.3. 결과

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

5.3. 런타임 프로필 작업

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

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

5.3.1.1. 개요

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

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

  • Camel 컨텍스트 파일 - 새 구성의 이름과 경로가 포함된 라우팅 컨텍스트 파일의 전체 경로를 지정합니다.
  • JMX - JMX URI 및 사용자 이름 및 암호(선택 사항)를 포함한 JMX 연결 세부 사항을 액세스하는데 사용할 수 있습니다.
  • 메인 -프로젝트의 기본 디렉터리의 정규화된 이름, 기본 디렉토리를 찾을 수 있는 몇 가지 옵션, 경로를 실행하기 전에 실행해야 하는 목표, 사용할 Maven 런타임의 버전을 지정합니다.
  • JRE - JVM을 시작할 때 사용할 JRE 및 명령행 인수를 지정합니다.
  • 새로 고침 - Maven이 실행이 종료된 후 프로젝트의 리소스 파일을 새로 고치는 방법을 확인합니다.
  • 환경 설정 - 설정해야 하는 환경 변수를 지정합니다.
  • 일반적으로 프로필과 출력이 어떻게 저장되는지를 확인할 수 있습니다.

Apache Camel 경로가 Local Camel Context 로 처음 실행되는 경우 Red Hat Fuse Tooling은 라우팅 컨텍스트 파일에 기본 런타임 프로필을 만들며 편집이 필요하지 않습니다.

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

그림 5.1. Local Camel Context의 런타임 구성 편집기

local camel 컨텍스트 런타임 구성 편집기
5.3.1.3. camel 컨텍스트 파일 설정

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

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

5.3.1.4. 명령줄 옵션 변경

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

-fa context-file

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

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

5.3.1.5. 출력 전송 위치 변경

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

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

  1. Common 탭을 선택합니다.
  2. 표준 입력 및 출력 창에서 출력 파일: 필드 옆에 있는 확인란을 클릭한 다음 출력을 보낼 파일의 경로를 입력합니다.In the Standard Input and Output pane, click the checkbox next to the Output File: field, and then enter the path to the file where you want to send the output.

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

5.3.2. Maven 런타임 프로필 편집

5.3.2.1. 개요

Maven 런타임 프로필은 Maven이 Apache Camel을 호출하는 방법을 구성합니다. Maven 런타임 프로필은 실행할 Maven 목표, 사용할 Maven 버전, 사용할 JRE, 사용할 classpath, 설정해야 하는 환경 변수, 기타 정보 조각 등을 저장합니다.

중요

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

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

  • 메인 -새 구성의 이름, 프로젝트의 기본 디렉토리의 정규화된 이름, 기본 디렉토리를 찾을 수 있는 몇 가지 옵션, 경로를 실행하기 전에 실행해야 하는 목표, 사용할 Maven 런타임의 버전을 지정합니다.
  • JRE - JVM을 시작할 때 사용할 JRE 및 명령행 인수를 지정합니다.
  • 새로 고침 - Maven이 실행이 종료된 후 프로젝트의 리소스 파일을 새로 고치는 방법을 확인합니다.
  • 소스 를 통해 프로젝트에 필요한 추가 소스의 위치를 확인합니다.
  • 환경 설정 - 설정해야 하는 환경 변수를 지정합니다.
  • 일반적으로 프로필과 출력이 어떻게 저장되는지를 확인할 수 있습니다.
5.3.2.2. Maven 런타임 구성 편집기에 액세스
  1. Project Explorer 보기에서 사용자 지정 런타임 프로필을 편집하거나 생성할 프로젝트의 루트를 선택합니다.
  2. 이를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Run AsRun Configurations 를 선택하여 Run Configurations (실행 구성) 대화 상자를 엽니다.
  3. 컨텍스트 선택 창에서 Maven Build 를 선택한 다음 컨텍스트 선택 창 왼쪽 상단에 있는 New profile icon 를 클릭합니다.

그림 5.2. Maven의 런타임 구성 편집기

Maven 런타임 구성 편집기
5.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> 설치 필드에 대한 글로벌 설정을 편집합니다.

5.3.2.4. Maven 버전 변경

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

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

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

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

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

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

6장. OpenShift에서 Fuse 시작하기

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

중요

Fuse Integration 프로젝트(OpenShift 프로젝트 사용)의 경우 Fuse 툴을 설치하려면 Red Hat 컨테이너 개발 키트(CDK) v3.x. x를 설치해야 합니다. 자세한 내용은 시작 가이드 를 참조하십시오. 이 가이드에 명시된 사전 요구 사항 외에도 Red Hat 계정이 없는 경우 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 Integration 프로젝트를 배포할 수 있지만, 이 장에서는 Red Hat Container Development Kit(CDK) v3.x 를 사용하여 로컬로 설치된 Fuse Integration 프로젝트 생성 및 배포에 대해 설명합니다.

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

참고

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

6.1. Red Hat Container Development Kit 서버 추가

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

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

    참고

    이 절차에서 설명하는 보기가 열려 있지 않으면 창 → 보기 → 기타를 선택하여 열 수 있습니다.If a view that is described in this procedure is not open, you can open it by selecting WindowShow ViewOther and then select the name of the view that you want to open.

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

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

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

    기본값을 적용합니다.

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

    • 사용자 이름 - Red Hat 계정에 로그인하는 데 사용하는 이름을 입력합니다.
    • 항상 "비밀"(비활성화됨)으로 암호 를 입력하라는 메시지를 표시합니다.
    • Red Hat 계정에 로그인하는 데 사용하는 암호 를 입력합니다.Enter the password you use to log into your Red Hat account.
  8. OK (확인)를 클릭하여 이제 채워진 Red Hat Container Development Environment 페이지로 돌아갑니다. 예를 들면 다음과 같습니다.

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

6.2. CDE(Container Development Environment) 및 가상 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이 표시됩니다. 자세한 내용은 6.6절. “OpenShift 웹 콘솔에 액세스” 에서 참조하십시오.

6.3. 새 OpenShift 프로젝트 생성

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

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

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

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

    • Display Name (표시 이름) 필드에 가상 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 웹 콘솔이 수행하는 프로젝트에 대한 동일한 정보를 수집하고 표시합니다.

6.4. 새로운 Fuse Integration 프로젝트 생성

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

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

  1. Project Explorer 보기에서 상황에 맞는 메뉴를 마우스 오른쪽 버튼으로 클릭한 다음 새 → Fuse Integration Project 를 선택하여 프로젝트 이름 선택 페이지를 엽니다.

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

    다른 옵션의 기본값을 적용합니다.

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

    새로운 프로젝트 Camel 버전

    Target Runtime (런타임없음)(런타임이 선택됨) 및 Camel 버전에 대한 기본값을 그대로 둡니다.

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

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

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

    참고

    처음 Fuse Integration 프로젝트에 대해 다운로드한 종속성 수로 인해 빌드하는데 다소 시간이 걸릴 수 있습니다.

    Fuse Integration 관점이 아직 열려 있지 않으면 Developer Studio에서 지금 열 것인지 여부를 표시하라는 메시지가 표시됩니다. 를 클릭합니다.

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

FIS ProjCreatedFIP

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

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

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

    FIS RunCnfgMain

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

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

    FIS RunCfgJRE
  5. VM 인수 창에서 -Dkubernetes.namespace=test 인수의 값을 생성한 경우 OpenShift 프로젝트에 사용한 프로젝트 이름과 일치하도록 변경합니다( 6.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 …​ 항목. * 프로젝트가 성공적으로 빌드되고 애플리케이션 이미지가 Docker 컨테이너를 빌드하는 데 사용될 OpenShift로 푸시되고 있음을 나타냅니다.

    FIS ConLogSuccess1

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

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

    OSE NewFISTestDeploy1

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

    OSEnewFISprojProps

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

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

    NFT camxmlPropsDetails

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

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

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

    참고

    메시지가 표시되면 설치된 oc 실행 파일의 경로를 입력합니다. 포드 로그를 검색해야 합니다.

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

    OSE podLogs displayed

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

6.6. OpenShift 웹 콘솔에 액세스

참고

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

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

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

  • 기본 개발자 역할

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

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

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

    • 사용자 이름 - admin
    • 암호 - admin

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

7장. Red Hat Fuse SAP Tool Suite 사용

Red Hat Fuse SAP Tool Suite를 사용하면 Camel 경로를 원격 SAP Application Server와 통합할 수 있습니다. RFC(Remote Function Calls) 및 Intermediate Documents (IDocs)의 전송 및 수신을 지원하기 위해 다양한 SAP 구성 요소가 제공됩니다. SAP 툴 제품군은 SAP의 JCo 및 IDoc 클라이언트 라이브러리에 따라 다릅니다. 이러한 라이브러리를 설치하고 사용하려면 SAP Service Marketplace 계정이 있어야 합니다.

7.1. Red Hat Fuse SAP Tool Suite 설치

7.1.1. 개요

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

7.1.2. SAP 툴링에 대한 플랫폼 제한

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

7.1.3. 사전 요구 사항

  • Fuse SAP Tool Suite를 설치하려면 먼저 http://service.sap.com/connectors에서 JCo 및 IDoc 라이브러리를 다운로드해야 합니다.
  • 운영 체제에 적합한 JCo 및 IDoc 라이브러리를 확인하려면 Red Hat Fuse 지원 구성 페이지를 참조하십시오.
  • JCo 및 IDoc 라이브러리를 다운로드하려면 SAP Service Marketplace 계정이 필요합니다.
  • 이 설치 절차에서는 다운로드한 파일을 아카이브 형식으로 남겨 둘 수 있습니다. 내용을 추출할 필요는 없습니다.

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

1. 개요

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

2. 절차

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

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

    새 전역 요소 뷰가 표시됩니다.

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

    Edit SAP Connection Configuration ( SAP 연결 구성 편집) 대화 상자가 표시됩니다. 이를 통해 대상 및 서버 연결 구성을 생성, 편집 및 삭제할 수 있습니다.

  3. 새 대상 데이터 저장소를 만들려면 대상 추가 탭을 클릭합니다.To create a new Destination Data Store, click the Add Destination tab.

    대상 만들기 대화 상자가 나타납니다.

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

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

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

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

      • SAP 인증 유형
      • SAP Client
      • LOGON 사용자
      • Logon User Alias
      • Logon 암호
      • SAP SSO Logon 티켓
      • SAP X509 로그인 티켓
      • 로그온 언어
    4. Special 탭을 클릭합니다. 이 탭에서 다음 속성 필드를 입력하여 연결을 구성합니다.

      • CPIC 추적을 선택합니다.
      • 초기 Codepage
    5. Pool (풀) 탭을 클릭하고 다음 속성 필드를 입력하여 연결을 구성합니다.

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

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

      • 리포지토리 대상
      • 리포지토리 로그온 사용자
      • 리포지터리 로그온 암호

        참고

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

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

    Test Destination Connection (대상 연결 테스트) 대화 상자가 열립니다.

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

    Connection test for destination 'YourDestination' succeeded.

    그렇지 않으면 상태 영역에 오류 보고서가 나타납니다.

  8. 닫기 를 클릭하여 대상 연결 테스트 대화 상자를 닫습니다.
  9. 완료를 클릭합니다. 새로 생성된 SAP Destination Connection ( SAP 대상 연결)이 SAP에 나타납니다.

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

7.2.1. 개요

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

7.2.2. 절차

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

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

    새 전역 요소 뷰가 표시됩니다.

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

    Edit SAP Connection Configuration ( SAP 연결 구성 편집) 대화 상자가 표시됩니다. 이를 통해 대상 및 서버 연결 구성을 생성, 편집 및 삭제할 수 있습니다.

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

    서버 생성 대화 상자가 나타납니다.

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

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

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

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

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

        참고

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

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

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

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

    Server state: STARTED
    Server state: ALIVE

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

  8. 중지 를 클릭하여 테스트 서버를 종료합니다.
  9. 닫기 를 클릭하여 서버 연결 테스트 대화 상자를 닫습니다.
  10. 완료를 클릭합니다. 새로 생성된 SAP Server Connection 이 SAP에 나타납니다.

7.3. 대상 및 서버 연결 삭제

7.3.1. 개요

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

7.3.2. 절차

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

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

    새 전역 요소 뷰가 표시됩니다.

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

    Edit SAP Connection Configuration ( SAP 연결 구성 편집) 대화 상자가 표시됩니다. 이를 통해 대상 및 서버 연결 구성을 생성, 편집 및 삭제할 수 있습니다.

  3. SAP 연결 구성 편집 대화 상자에서 삭제할 대상 및 서버 데이터 저장소를 선택합니다.In the Edit SAP Connection Configuration dialog, select the Destination and Server Data Stores that you want to delete.
  4. 삭제를 클릭합니다. 선택한 연결을 삭제합니다.

    atlast를 클릭합니다. 완료 를 클릭합니다. 모든 변경 사항을 저장합니다.

7.4. 새 SAP 끝점 생성

7.4.1. 개요

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

참고

SAP 연결 보기를 사용하는 경우 필요한 SAP 연결 구성 데이터를 Blueprint XML 또는 Spring XML 코드에 붙여야 합니다.

7.4.2. 사전 요구 사항

SAP 연결 편집 대화 상자의 도움으로 일부 SAP 대상 연결 및/또는 서버 연결을 이미 만들어야 합니다.

참고

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

7.4.3. 절차

새 SAP 끝점을 만들려면 다음 단계를 수행합니다.

  1. 사용할 Fuse 프로젝트와 Camel XML 파일이 이미 있는 것으로 가정합니다(Glue XML 또는 Spring XML 형식의 경우).
  2. 경로 편집기에서 Camel XML 파일을 엽니다. Red Hat Fuse SAP Tool Suite를 이미 설치한 경우 경로 편집기의 구성 요소 아래에 SAP 구성 요소 를 확인할 수 있습니다. 다음 SAP 구성 요소는 도구 모음에서 제공합니다.

    • SAP IDoc Destination
    • SAP IDoc List Destination
    • SAP IDoc List Server
    • SAP qRFC Destination
    • SAP Queued IDoc Destination
    • SAP Queued IDoc list Destination
    • SAP sRFC Destination
    • SAP SRFC Server
    • SAP tRFC Destination
    • 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 으로 사용합니다.

8장. 데이터 변환 시작하기

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

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

8.1. 데이터 변환에 대한 프로젝트 생성 예

  1. 새 Fuse 통합 프로젝트 생성 ( 파일Fuse Integration Project선택).

    마법사의 다음 정보를 제공합니다.Provide the following information in the wizard:

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

    <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. Design 탭을 클릭하여 경로의 그래픽 표시로 돌아갑니다.

    설명

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

  1. Palette 에서 Transformation drawer를 확장합니다.
  2. 데이터 변환 패턴을 클릭한 다음 캔버스에서 SetHeader1 및 To_to1 노드 간의 화살표를 클릭합니다.

    새로운 변환 마법사Dozer 파일 경로 필드를 자동으로 입력하여 열립니다.

    설명
  3. 나머지 필드를 입력합니다.

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

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

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

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

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

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

    이제 소스 유형(XML) 정의 페이지는 다음과 같아야 합니다.

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

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

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

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

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

설명

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

  • 소스의 사용 가능한 데이터 항목을 소스 #189(lists)으로 설정합니다.
  • 매핑 은 소스 및 대상 데이터 항목 간 매핑을 표시합니다.
  • 대상 대상 에서 사용 가능한 데이터 항목 나열

또한 편집기의 세 패널 아래에 있는 편집기의 세부 정보 창(첫 번째 매핑이 생성된 경우)에 현재 선택된 매핑된 소스 및 대상 데이터 항목에 대한 계층적 상위 항목이 그래픽으로 표시됩니다. 예를 들면 다음과 같습니다.

대상 속성 role=custId에 매핑된 소스 속성 customerNum이 있는 세부 정보 창" class="modal-img" loading="lazy">

세부 정보 창을 사용하여 선택한 소스 및 대상 데이터 항목에 대한 매핑을 사용자 지정할 수 있습니다.Using the details pane, you can customize the mapping for the selected source and target data items:

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

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

    설명
  2. 소스 패널에서 데이터 항목을 끌어서 대상 패널의 해당 데이터 항목에 놓습니다.

    예를 들어 Source 패널에서 customerNum 데이터 항목을 끌어서 Target 패널의 custId 데이터 항목에 놓습니다.

    설명

    매핑이 Mappings 패널에 표시되고 원본대상 데이터 항목의 세부 정보가 세부 정보 창의 아래에 표시됩니다.

  3. 모든 기본 매핑을 완료할 때까지 소스 데이터 항목을 해당 대상 데이터 항목에 계속 끌어 놓습니다.

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

    Expand
    소스대상

    orderNum

    orderId

    status

    priority

    id

    itemId

    가격

    cost

    수량

    수량

    참고

    컬렉션을 수집되지 않은 데이터 항목 또는 세트에 매핑할 수 있지만 컬렉션을 다른 컬렉션에 매핑할 수는 없습니다.You can map collections (data items containing lists or sets) to non-collection data items and vice versa, but you cannot map collections to other collections.

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

    설명

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

    시작 예에서 나머지 unmapped Target 속성은 approvalCodeorigin 입니다.

  5. 청사진.xml 탭을 클릭하여 경로의 그래픽 디스플레이로 돌아갑니다.

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

변환 테스트를 생성한 후 변환 파일에서 JUnit 테스트를 실행할 수 있습니다. 자세한 내용은 8.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

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

  1. Project Explorer 보기에서 시작 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 기타Fuse ToolingFuse Transformation Test 를 선택합니다.
  2. 다음 을 선택하여 새 변환 테스트 마법사를 엽니다.
  3. 새 변환 테스트 마법사에서 다음 값을 설정합니다.In the New Transformation Test wizard, set the following values:

    Expand
    필드

    패키지

    Camel 파일 경로

    OSGI-INF/blueprint/blueprint.xml

    변환 ID

    xml2json

  4. 완료를 클릭합니다.
  5. Project Explorer 보기에서 starter/src/test/java/example 로 이동하여 TransformationTest.java 파일을 엽니다.
  6. 변환 메서드에 다음 코드를 추가합니다.Add the following code to the transform method:

    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. 콘솔 보기를 열어 로그 출력을 확인합니다.

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

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

시작 예에서 대상 데이터 항목 origin에는 해당 원본 데이터 항목이 없습니다.In the starter example, the target data item origin does not have a corresponding source data item. origin 특성을 상수 변수에 매핑하려면 다음을 수행합니다.

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

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

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

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

  4. OK를 클릭합니다.

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

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

    설명

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

  8. TransformationTest.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 8.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}]}

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

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

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

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

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

    설명

    또한 approvalCode 데이터 항목이 세부 정보 창의 대상 상자에 표시됩니다.

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

    설명

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

  4. 식을 선택하여 식을 엽니다.Select Set expression to open the expression dialog.

    설명
  5. 언어 언어의 사용 가능한 언어 목록에서 사용할 식 언어를 선택합니다.In Language, select the expression language to use from the list of those available. 사용 가능한 옵션은 데이터 항목의 데이터 유형에 따라 다릅니다.

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

  6. 세부 정보 창에서 사용할 식의 소스를 선택합니다.In the details pane, select the source of the expression to use.

    옵션은 ValueScript 입니다.

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

  7. OK를 클릭합니다.

    설명

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

  8. TransformationTest.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 8.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}]}

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

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

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

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

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

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

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

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

    • 패키지 확인 .
    • 이름: MyCustomMapper.
    • 메서드 이름 변경 맵을 대괄호 로 지정합니다.

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

  6. 완료를 클릭합니다.

    사용자 지정 변환 추가 페이지 가 자동으로 채워지는 ClassMethod 필드로 열립니다.

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

    설명
  8. 대괄호 메서드를 편집하여 마지막 줄 반환 null 을 다음과 같이 변경합니다.

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

    설명

    세부 정보 창에 대괄호 메서드가 customerN um 데이터 항목과 연결되었음을 확인할 수 있습니다.

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

  10. TransformationTest.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 8.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}]}

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

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

이 변경으로 인해 소스의 ids가 대상의 itemIds에 매핑되지 않습니다.

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

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

    설명
  3. 속성 선택 페이지에서 헤더 노드를 확장하고 customerNum 을 선택합니다. 확인 을 클릭하여 변경 내용을 저장합니다.Click OK to save the changes.

    속성 선택
  4. 세부 정보 창에 XyzOrderlineItems 필드가 있음을 확인할 수 있습니다. lineItems 옆에 있는 토글 버튼을 클릭하여 값을 1 로 늘립니다.

    참고

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

    설명

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

  5. TransformationTest.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 8.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}]}

8.9. 매핑된 데이터 항목에 내장 함수 추가

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

  1. 변환 패널에서 세부 정보 창을 채우려면 우선 순위 매핑 상태를 선택합니다.

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

    설명
  3. 변환 창에서 append 를 선택하고 Arguments 창에서 접미사 값으로 -level 을 입력합니다.

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

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

    설명

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

    설명
  5. TransformationTest.java 파일에서 JUnit 테스트를 실행합니다. 자세한 내용은 8.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}]}

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

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

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

  1. 아직 없는 경우 Fuse Integration 관점으로 전환합니다.
  2. 필요한 경우 Fuse 서버를 서버 목록에 추가 합니다 ( 27.1절. “서버 추가”참조하십시오.
  3. Fuse Server를 시작하고( 27.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

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

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

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

  • 통합 연결 간 데이터에서 작동하는 하나 이상의 사용자 정의 단계One or more custom steps that operate on data between connections in an integration

    또는

  • 사용자 정의 커넥터한 개

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

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

참고

선택한 IDE에서 확장을 개발하는 것을 선호할 수 있습니다. Fuse Tooling 또는 다른 IDE를 사용할지 여부는 개인 기본 설정에 따라 다릅니다. 모든 IDE에서 확장 프로그램을 개발하는 방법에 대한 정보는 Fuse Online과 애플리케이션 통합에 있습니다.

9.1. 작업 개요

다음은 Fuse Online 확장을 개발하는 작업에 대한 개요입니다.

  1. Fuse Online 확장 프로젝트를 만들고 사용자 정의 커넥터 또는 사용자 정의 단계 를 확장 유형으로 선택합니다.
  2. 확장 형식에 따라 확장에 대한 코드를 작성합니다.Depending on the extension type, write the code for the extension:

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

Fuse Online 사용자는 .jar 파일을 Fuse Online에 업로드하므로 사용자 정의 커넥터 또는 사용자 지정 단계를 사용할 수 있습니다. Fuse Online 및 통합을 만드는 방법에 대한 자세한 내용은 Integrating Applications with Fuse Online 을 참조하십시오.

9.2. 사전 요구 사항

시작하기 전에 다음과 같은 정보와 정보가 필요합니다.Before you begin, you need the following information and knowledge:

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

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

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

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

사용자 정의 커넥터를 개발하기 위한 작업의 개요는 다음과 같습니다.

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

9.3.1. 사용자 정의 커넥터 코드 작성

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

Expand
표 9.1. 사용자 정의 커넥터 요소
Fuse Tooling 요소Fuse Online 요소설명

Global (top-level) 속성

연결 구성 매개변수

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

동작

연결 작업

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

작업에 정의된 속성

작업 구성 매개변수

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

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

  1. 편집기 보기에서 syndesis-extension-definition.json 파일을 열고 전역 속성을 정의하는 코드, 사용자 지정 커넥터에서 수행할 수 있는 작업 및 각 작업의 특성을 작성합니다.Open the syndesis-extension-definition.json file in the Editor view and write the code that defines the global properties, the actions that the custom connector can perform, and each action's properties.

    글로벌 속성 은 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 파일에 추가합니다. 종속성의 기본 범위는 런타임입니다. Red Hat이 제공하는 종속성을 추가하는 경우, 제공된 범위(예:)를 정의합니다.

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

사용자 정의 커넥터의 코드 작성을 마치면 9.5절. “Fuse Online extension JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.

9.4. 사용자 정의 단계 생성

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

9.4.1. 사용자 정의 단계를 위한 코드 작성

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

표 9.2. “사용자 정의 단계 요소” Fuse Tooling에서 생성하는 사용자 지정 단계 요소가 Fuse Online의 요소에 해당하는 방법을 보여줍니다.

Expand
표 9.2. 사용자 정의 단계 요소
Fuse Tooling 요소Fuse Online 요소설명

동작

사용자 정의 단계

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

작업에 정의된 속성

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

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

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

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

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

  2. syndesis-extension-definition.json 파일에서 작업 및 해당 속성을 정의하는 코드를 작성합니다.In the syndesis-extension-definition.json file, write the code that defines the actions and their properties. 각 진입점에 대해 새 작업이 필요합니다.

    만드는 각 작업은 Fuse Online의 사용자 지정 단계에 해당합니다. 각 작업에 대해 서로 다른 유형의 코드를 사용할 수 있습니다. 즉 Camel 경로를 한 작업에 사용하고 Java 빈을 사용하여 다른 작업을 수행할 수 있습니다.

    각 속성은 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' 파일을 엽니다. 종속성을 추가하는 경우 해당 범위를 정의해야 합니다.

사용자 지정 단계의 코드 작성을 마치면 9.5절. “Fuse Online extension JAR 파일 빌드” 에 설명된 대로 .jar 파일을 빌드합니다.

9.5. Fuse Online extension JAR 파일 빌드

확장에 사용할 .jar 파일을 빌드하려면 다음을 수행합니다.

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

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

    예: custom:step-camel-1.0.0.jar

    .jar 파일은 확장 기능, 필수 종속성 및 해당 메타데이터(Extension 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"
    }

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

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

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

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

10장. 새 Camel XML 파일 생성

10.1. 개요

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

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

10.2. 절차

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

  1. 메인 메뉴에서 파일Camel XML 파일 을 선택하여 Camel XML 파일 마법사를 엽니다. 그림 10.1. “Camel XML 파일 마법사”.

    그림 10.1. Camel XML 파일 마법사

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

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

    중요

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

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

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

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

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

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

11장. Camel 버전 변경

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

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

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

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

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

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

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

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

12.1. 개요

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

예를 들어, New Fuse Integration Project 마법사는 다음과 같은 여러 Github 리포지토리를 소스로 지정합니다.

12.2. 절차

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

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

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

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

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

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

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

13장. Breakpoints 설정

13.1. 개요

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

Camel 디버거는 다음 두 가지 유형의 중단점을 지원합니다.

  • 디버그 세션 중 하나가 발생할 때마다 무조건 정지되지 않음
  • 디버깅 세션 중 중단점의 지정된 조건이 충족될 때만 조건부 중단점을 발생시킵니다.
참고

소비자 끝점 또는 시기 또는 다른 노드에서는 중단점을 설정할 수 없습니다.

13.2. 무조건 정지 상태 설정

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

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

13.3. 조건부 정지 설정

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

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

    디버그 CondBPCnfg
  3. Language (언어) 드롭다운 메뉴를 클릭하고 중단점을 트리거할 조건을 생성하는 데 사용할 식 언어를 선택합니다.

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

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

    목록이 표시되면 변수 중 하나 이상을 순서대로 선택하여 중단점을 트리거하는 조건을 만듭니다.If a list appears, select in sequence one or more of the variables to create the condition for triggering the breakpoint. 선택한 변수가 조건 텍스트 상자에 나타납니다.

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

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

13.4. 중단점 비활성화

일시적으로 중단점을 비활성화하고 그대로 두고 나중에 다시 활성화할 수 있습니다.You can temporarily disable a breakpoint, leaving it in place, then enable it again later. resume co 버튼은 디버깅 세션 중에 비활성화된 Cryostat를 건너뜁니다.

Cryostat를 비활성화하려면 캔버스에서 노드를 선택하고 gray dot 아이콘을 클릭합니다. 정지가 회색으로 설정되어 비활성화되어 있음을 나타냅니다.

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

참고

디버깅 세션 중에 중단점을 비활성화하고 다시 활성화할 수도 있습니다.You can also disable and re-enable breakpoints during debugging sessions. 자세한 내용은 18장. 실행 중인 컨텍스트에서 Breakpoints 비활성화의 내용을 참조하십시오.

13.5. 중단점 삭제

개별 중단점 또는 모든 중단점을 삭제할 수 있습니다.You can delete individual breakpoints or all breakpoints.

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

14장. Camel Debugger 실행

로컬에서 실행되는 라우팅 컨텍스트에서 Camel 디버거를 실행할 수 있습니다.

참고
  • 원격 디버깅은 더 이상 지원되지 않습니다. 원격 디버깅을 위해 Jolokia를 구성하고 Jolokia를 통해 특정 JMX 연결을 생성해야 합니다.
  • 프로젝트에 Java 코드가 포함된 경우 표준 Eclipse Java 디버깅 도구를 사용하여 디버그할 수 있습니다.

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

14.1. 절차

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

    Fuse 툴링은 Camel 경로를 빌드하고 Apache Camel을 시작하고, 라우팅 컨텍스트를 시작하고, JMX를 실행하고, 라우팅 컨텍스트에서 경로를 시작하고, 노드에 중단점을 추가하고, Camel 디버거를 활성화합니다.

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

    DBCnfrmSwitchToDBView
  3. 예 를 클릭하여 디버그 화면을 엽니다.Click Yes to open the Debug perspective.

    디버그 관점은 실행 중인 라우팅 컨텍스트에서 첫 번째 중단점에서 일시 중단된 라우팅 컨텍스트를 사용하여 열립니다.

    중요

    중단점은 최대 5분 동안 유지됩니다. 이 후 디버깅이 자동으로 다시 시작되고 다음 중단점으로 이동하고 라우팅 컨텍스트의 끝으로 이동합니다.

    openDBPerspective
    참고

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

    참고

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

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

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

debug StateChange

15장. Camel 디버거 중지

15.1. 개요

Camel 디버거를 중지하려면 디버깅 세션이 종료되면 메뉴 모음에서 Terminate button 를 클릭합니다. 그렇지 않으면 Terminate button 를 두 번 클릭합니다. 한 번 현재 실행 중인 노드 스레드를 종료하고 한 번 클릭하여 Camel Context 스레드를 종료합니다( 디버그 보기에 표시됨).

+

참고

Camel 디버거를 종료하면 콘솔도 종료되지만 출력을 지우지 않습니다. 출력을 지우려면 콘솔 보기의 메뉴 모음에서 clear co ( #159 콘솔)을 클릭합니다.

15.2. Camel 디버거 종료

프로젝트 디버깅을 완료한 후에는 디버그 화면을 닫아 워크벤치에 더 많은 공간을 만들 수 있습니다.After you have finished debugging your project, you may want to close the Debug perspective to make more space for your workbench.

이렇게 하려면 툴바에서 Debug perspective icon 를 마우스 오른쪽 버튼으로 클릭한 다음 닫기 를 선택합니다.

16장. 변수 값 변경

16.1. 개요

Camel 디버거가 중단점에 도달하면 변수 뷰에는 라우팅 컨텍스트의 해당 시점에서 사용 가능한 모든 변수의 값이 표시됩니다. 일부 변수는 편집할 수 있으므로 해당 값을 변경할 수 있습니다. 이렇게 하면 응용 프로그램에서 프로그램 상태의 변경 사항을 처리하는 방법을 확인할 수 있습니다.This enables you to see how the application handles changes in program state.

참고

모든 변수를 편집할 수 있는 것은 아닙니다. 편집 가능한 변수의 컨텍스트 메뉴에 값 변경.

16.2. 절차

변수 값을 변경하려면 다음을 수행합니다.

  1. 필요한 경우 디버거를 시작합니다. 14장. Camel Debugger 실행 을 참조하십시오.
  2. 변수 보기에서 변경할 값이 있는 변수를 선택한 다음 해당 Value 필드를 클릭합니다.

    editBPvars1

    변수의 value 필드는 파란색의 밝게 셰이더 그늘이 되어 편집 모드에 있음을 나타냅니다.

    참고

    또는 변수를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 값 변경...를 선택하여 값 을 편집할 수 있습니다.

  3. 새 값을 입력한 다음 Enter 를 클릭합니다.

    콘솔 보기에는 변수 값의 변경 사항이 포함된 INFO 수준 로그 항목이 표시됩니다(예: 노드의 Breakpoint at node to1은 exchangeId: ID-dhcp-97-16-bos-redhat-com-52574-1417298894070-0-2: Destination 및 UNITED KINGDOM )에서 메시지 헤더를 업데이트하고있습니다.

  4. 중단점을 단계별로 수행하고 메시지가 예상대로 처리되는지 확인합니다. 각 단계에서 디버그 보기, 변수 보기 및 콘솔 출력을 확인합니다.

17장. 감시 목록에 변수 추가

17.1. 개요

감시 목록에 변수를 추가하면 특정 변수에 중점을 두고 해당 값이 라우팅 컨텍스트를 통해 전달될 때 예상대로 변경되었는지 확인할 수 있습니다.

17.2. 절차

조사 목록에 변수를 추가하려면 다음을 수행합니다.

  1. 필요한 경우 디버거를 시작합니다. 14장. Camel Debugger 실행 을 참조하십시오.
  2. 변수 보기에서 추적하려는 변수를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.

    UGaddVarWatchList
  3. Watch 를 선택합니다.

    새 보기인 표현식이 Breakpoints 보기 옆에 열립니다. Expressions 뷰에는 감시 중인 변수의 이름과 현재 값이 표시됩니다. 예를 들면 다음과 같습니다.

    UGwatchList
  4. [watch1][watch2] 을 반복하여 시계 목록에 변수를 추가합니다.

    참고

    추가하는 변수는 제거할 때까지 감시 목록에 남아 있습니다. 변수 감시를 중지하려면 목록에서 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 제거 를 클릭합니다.

  5. Expressions 뷰를 사용하면 라우팅 컨텍스트를 단계별로 이동하여 경로의 각 단계에 도달할 때 감시 목록의 각 변수의 값이 변경되는 방식을 추적합니다.

18장. 실행 중인 컨텍스트에서 Breakpoints 비활성화

18.1. 개요

Breakpoints 보기에서 실행 중인 라우팅 컨텍스트에서 중단점을 비활성화하고 다시 활성화할 수 있습니다.You can disable and re-enable breakpoints in a running routing context in the Breakpoints view.

Cryostat를 비활성화하면 resume co 버튼을 사용하면 디버깅 세션 중에 디버거가 이를 건너 뛰게 됩니다.

18.2. Breakpoints 보기에서 중단점 비활성화 및 활성화

모든 setpoints가 활성화된 상태에서 Breakpoints 뷰가 열립니다.

BPviewEnabled

정지점을 비활성화하려면 해당 확인란을 지웁니다.

BPviewDisabled

사용하지 않도록 설정할 때마다 콘솔 보기에 해당 항목이 비활성화되었음을 나타내는 INFO (정보) 수준 로그 항목이 표시됩니다(예: 정지 로그제거2). 마찬가지로 다시 사용하도록 설정한 각 정지점에 대해 콘솔 보기에 해당 값이 활성화되었음을 나타내는 INFO 수준 로그 항목이 표시됩니다(예: 정지 로그 추가2추가).

참고

비활성화된 정지점을 다시 활성화하려면 해당 확인란을 클릭합니다. 콘솔 보기에 중단점이 선택한 노드에 추가되었음을 알리는 INFO 수준 로그 항목이 표시됩니다.

III 부. 애플리케이션 모니터링 및 테스트

JMX Navigator 뷰는 Fuse 애플리케이션을 모니터링하고 테스트하는 다양한 방법을 제공합니다.

참고

Fuse 관리에 설명된 대로 Fuse 콘솔을 사용하여 Fuse 애플리케이션을 모니터링할 수도 있습니다. https://access.redhat.com/documentation/en-us/red_hat_fuse/7.11/html-single/managing_fuse/index

19장. JMX Navigator

그림 19.1. “JMX Navigator 보기” 에 표시된 JMX Navigator 보기에는 애플리케이션에서 실행 중인 모든 프로세스가 표시되고 모니터링 및 테스트 기능과 모든 상호 작용을 구동합니다. Fuse Integration 관점의 다른 영역은 JMX Navigator 보기에서 선택한 노드와 관련된 정보를 표시하도록 적응합니다. JMX Navigator 보기에서 컨텍스트 메뉴는 경로 추적을 활성화하고 JMS 대상을 추가하는 데 필요한 명령을 제공합니다.

그림 19.1. JMX Navigator 보기

JMX Navigator 보기

기본적으로 JMX Navigator 보기에서는 로컬 컴퓨터에서 실행되는 모든 JMX 서버를 검색하여 다음 카테고리 아래에 나열하십시오.

  • 로컬 프로세스
  • 서버 연결
  • 사용자 정의 연결
참고

서버의 JMX URL을 사용하여 다른 JMX 서버를 추가할 수 있습니다. 자세한 내용은 19.2절. “JMX 서버 추가”의 내용을 참조하십시오.

19.1. JMX에서 프로세스 보기

19.1.1. 개요

JMX Navigator 보기는 일련의 트리의 알려진 모든 프로세스를 나열합니다. 각 트리의 루트는 JMX 서버입니다.

목록의 첫 번째 트리는 로컬 시스템에서 실행 중인 모든 JMX 서버를 포함하는 특수 Local Processes 트리입니다. 포함된 프로세스를 보려면 JMX 서버 중 하나에 연결해야 합니다.

19.1.2. 로컬 JMX 서버에서 프로세스 보기

로컬 JMX 서버에서 프로세스에 대한 정보를 보려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 로컬 프로세스를 확장합니다.
  2. Local Processes 에서 최상위 항목 중 하나를 두 번 클릭하여 연결합니다.
  3. 항목 옆에 표시되는 expansion arrow 아이콘을 클릭하여 JVM에서 실행 중인 구성 요소 목록을 표시합니다.

19.1.3. 대체 JMX 서버에서 프로세스 보기

대체 JMX 서버에서 프로세스에 대한 정보를 보려면 다음을 수행합니다.

  1. 19.2절. “JMX 서버 추가” JMX Navigator 보기에 대한 JMX 서버입니다.
  2. Cryo stat Navigator 보기에서 항목 옆에 표시되는 expansion arrow 아이콘을 사용하여 서버의 항목을 확장합니다. 이렇게 하면 JVM에서 실행 중인 JMX 서버의 구성 요소 목록이 표시됩니다.

19.2. JMX 서버 추가

19.2.1. 개요

JMX Navigator 보기의 Local Processes 분기의 트리의 모든 로컬 JMX 서버 목록을 볼 수 있습니다. 다른 시스템에 배포된 구성 요소를 보려면 특정 JMX 서버에 연결해야 합니다.

JMX 서버를 추가하려면 추가하려는 서버의 JMX URL을 알아야 합니다.

19.2.2. 절차

JMX Navigator 보기에 JMX 서버를 추가하려면 다음을 수행합니다.

  1. Cryo stat Navigator 보기에서 새 연결 new server wiz 을 클릭합니다.
  2. Create a new JMX connection (새 JMX 연결 생성) 마법사에서 Default JMX Connection 을 선택합니다.
  3. 다음을 클릭합니다.
  4. Advanced (고급) 탭을 선택합니다.
  5. 이름 필드에 JMX 서버의 이름을 입력합니다.

    이름은 임의의 문자열일 수 있습니다. JMX Navigator 트리의 항목에 레이블을 지정하는 데 사용됩니다.

  6. JMX URL 필드에 서버의 JMX URL을 입력합니다.
  7. JMX 서버에 인증이 필요한 경우 UsernamePassword 필드에 사용자 이름과 암호를 입력합니다.
  8. 완료를 클릭합니다.

    새 JMX 서버가 User-Defined Connections 트리에 분기로 표시됩니다.

20장. 구성 요소의 JMX 통계 보기

20.1. 개요

툴링은 Fuse 구성 요소에서 보고한 모든 JMX 통계를 수집하여 속성 보기에 표시합니다. 이 통계 정보는 통합 애플리케이션에서 발생하는 일에 대한 중요한 정보를 제공할 수 있습니다.

JMX 통계는 속성,프로세서프로파일 의 세 가지 범주로 그룹화됩니다.

20.2. 절차

Fuse 구성 요소의 통계를 보려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 구성 요소에 대한 노드를 찾습니다.

    하위 수준 구성 요소를 찾기 위해 트리의 노드를 확장해야 할 수 있습니다.

  2. 검토할 통계가 있는 Fuse 구성 요소의 노드를 선택합니다.
  3. 속성 보기를 엽니다.
  4. 속성 페이지에는 선택한 구성 요소에 대한 JMX 속성이 표시됩니다.

    JMXchoiceNodeProps
  5. Processors 를 클릭하여 선택한 구성 요소의 교환 지표를 확인합니다.

    JMXchoiceNodeProcs
  6. Profile (프로필)을 클릭하여 선택한 노드 및 해당 하위 노드의 메시지 지표를 확인합니다.

    JMXchoiceNodeProfile

21장. 메시지 검색

21.1. 개요

분산 환경에서 애플리케이션을 디버깅하기 위한 주요 툴은 애플리케이션의 JMS 대상 및 경로 끝점에 저장된 모든 메시지를 확인하는 것입니다. 툴은 다음을 검색할 수 있습니다.

  • JMS 대상
  • JMS 라우팅 끝점
  • Apache Camel 라우팅 끝점
  • SEDA 라우팅 끝점
  • 라우팅 끝점 검색
  • mock 라우팅 끝점
  • VM 라우팅 끝점
  • 데이터 세트 라우팅 끝점

21.2. 절차

메시지를 찾으려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 검색하려는 JMS 대상 또는 끝점을 선택합니다.

    메시지 목록이 메시지 보기에 나타납니다.

  2. 메시지 보기에서 검사할 개별 메시지를 선택합니다.

    browseMsgView

    메시지 세부 정보 및 콘텐츠는 속성 보기에 표시됩니다.

    browseMsgPropertiesV

22장. 경로 추적

경로를 디버깅하는 것은 종종 두 가지 문제 중 하나를 해결하는 것입니다.

  • 메시지가 잘못 변환되었습니다.
  • 메시지가 대상 끝점에 도달하지 못했습니다.

경로를 통해 하나 이상의 테스트 메시지를 추적하는 것이 이러한 문제의 원인을 찾는 가장 쉬운 방법입니다.

툴링의 경로 추적 기능을 사용하면 메시지가 경로를 통과하는 경로를 모니터링하고 프로세서에서 프로세서로 전달할 때 메시지가 어떻게 변환되는지 확인할 수 있습니다.

다이어그램 보기는 메시지에 사용되는 경로를 볼 수 있는 경로의 그래픽 표현을 표시합니다.The diagram view displays a graphical representation of the route, which enables you to see the path a message takes through it. 경로의 각 프로세서에 대해 경로 시작 이후 처리된 모든 메시지의 평균 처리 시간(밀리초)과 경로 시작 이후 처리된 메시지 수도 표시합니다.

Messages ViewJMX Navigator 트리에서 선택한 JMS 대상 또는 경로 끝점에서 처리하는 메시지를 표시합니다. 메시지 보기에서 개별 메시지 추적을 선택하면 속성 보기에 메시지의 전체 세부 사항 및 내용이 표시되고 다이어그램 보기에서 노드 구성 요소가 강조 표시됩니다.

경로를 통해 메시지를 추적하려면 다음 단계가 포함됩니다.

22.1. 경로 추적을 위한 테스트 메시지 생성

22.1.1. 개요

경로 추적은 모든 종류의 메시지 구조에서 작동합니다. Fuse Message 마법사는 빈 .xml 메시지를 생성하여 메시지를 완전히 구성할 수 있습니다.

참고

테스트 메시지를 저장하려는 폴더가 존재하지 않는 경우 메시지를 생성하기 전에 생성해야 합니다.

22.1.2. 테스트 메시지를 저장할 새 폴더 생성

새 폴더를 생성하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트 루트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. 폴더 를 선택하여 새 폴더 마법사를 엽니다.

    프로젝트 루트가 Enter에 나타나거나 상위 폴더 필드를 선택합니다.

  3. 프로젝트 계층 구조의 그래픽 표현에서 노드를 확장하고 상위 폴더가 될 노드를 선택합니다.
  4. Folder name 필드에 새 폴더의 이름을 입력합니다.
  5. 완료를 클릭합니다.

    새 폴더가 Project Explorer 보기에 선택한 상위 폴더 아래에 나타납니다.

    참고

    새 폴더가 나타나지 않으면 부모 foler를 마우스 오른쪽 버튼으로 클릭하고 새로 고침 을 선택합니다.

22.1.3. 테스트 메시지 생성

테스트 메시지를 생성하려면 다음을 수행합니다.

  1. Project Explorer 보기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. Fuse 메시지 를 선택하여 새 파일 마법사를 엽니다.
  3. 프로젝트 계층 구조의 그래픽 표시로 노드를 확장하고 새 테스트 메시지를 저장할 폴더를 선택합니다.
  4. 파일 이름 필드에 메시지의 이름을 입력하거나 기본값(message.xml)을 수락합니다.
  5. 완료를 클릭합니다.

    새 메시지가 XML 편집기에서 열립니다.

  6. 본문과 헤더 텍스트 모두 메시지 내용을 입력합니다.

    참고

    입력한 헤더 텍스트에 따라 문서에서 참조되는 경고, No grammar 제약 조건(DTD 또는 XML 스키마)이 표시될 수 있습니다.You may see the warning, No grammar constraints (DTD or XML Schema) referenced in the document, depending on the header text you entered. 이 경고는 무시해도 됩니다.

22.2. 경로 추적 활성화

22.2.1. 개요

해당 라우팅 컨텍스트를 통해 메시지를 추적하려면 라우팅 컨텍스트의 경로 추적을 활성화해야 합니다.

22.2.2. 절차

라우팅 컨텍스트에서 추적을 활성화하려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 추적을 시작할 실행 중인 라우팅 컨텍스트를 선택합니다.

    참고

    컨텍스트에서 경로를 선택하여 전체 컨텍스트에서 추적을 시작할 수 있습니다.

  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 추적 시작을 선택하여 추적 을 시작합니다.

    컨텍스트 메뉴에서 추적 컨텍스트 중지 가 활성화된 경우 추적이 이미 활성화됩니다.

22.3. 라우팅 컨텍스트를 통한 메시지 추적

22.3.1. 개요

라우팅 컨텍스트에서 무슨 일이 일어나고 있는지 확인하는 가장 좋은 방법은 각 중지의 메시지에 미치는 상황을 보는 것입니다. 툴링은 메시지를 실행 중인 라우팅 컨텍스트로 삭제하고 메시지에서 처리하는 경로를 추적하는 메커니즘을 제공합니다.

22.3.2. 절차

라우팅 컨텍스트를 통해 메시지를 추적하려면 다음을 수행합니다.

  1. 22.1절. “경로 추적을 위한 테스트 메시지 생성” 에 설명된 대로 하나 이상의 테스트 메시지를 만듭니다.
  2. Project Explorer 보기에서 프로젝트의 Camel 컨텍스트 파일을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 테스트 없이 Run As → Local Camel Context를 선택합니다.

    참고

    프로젝트에 대한 포괄적인 JUnit 테스트를 생성하지 않는 한 Local Camel Context 로 실행하지 마십시오.

  3. 22.2절. “경로 추적 활성화” 에 설명된 대로 실행 중인 라우팅 컨텍스트의 추적을 활성화합니다.
  4. Project Explorer 보기에서 테스트 메시지 중 하나를 JMX Navigator 보기에서 라우팅 컨텍스트의 시작점으로 드래그합니다.
  5. JMX Navigator 보기에서 추적 중인 라우팅 컨텍스트를 선택합니다.

    툴링은 추적된 컨텍스트 의 각 단계에서 메시지를 나타내는 메시지 인스턴스로 메시지 뷰 를 채웁니다.

    다이어그램 보기에는 선택한 라우팅 컨텍스트의 그래픽 표시가 표시됩니다.

  6. 메시지 보기에서 메시지 인스턴스 중 하나를 선택합니다.

    속성 뷰에는 메시지 인스턴스의 세부 정보와 내용이 표시됩니다.

    다이어그램 보기에서 선택한 메시지 인스턴스에 해당하는 경로 단계가 강조 표시됩니다. 경로 단계가 처리 단계인 경우 툴은 타이밍 및 처리 메트릭으로 종료 경로에 태그를 지정합니다.

  7. 필요에 따라 이 과정을 반복합니다.

22.4. 경로 추적 비활성화

22.4.1. 개요

라우팅 컨텍스트에서 경로 디버깅을 완료하면 추적을 비활성화해야 합니다.

중요

추적을 비활성화하여 라우팅 컨텍스트의 모든 경로에 대한 추적 데이터를 중지하고 플러시합니다. 즉, 이전 추적 세션을 검토할 수 없습니다.

22.4.2. 절차

라우팅 컨텍스트의 추적을 중지하려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 추적을 비활성화할 실행 중인 라우팅 컨텍스트를 선택합니다.

    참고

    컨텍스트에서 경로를 선택하여 컨텍스트의 추적을 중지할 수 있습니다.

  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 추적 컨텍스트 중지를 선택합니다.

    컨텍스트 메뉴에 추적 이 표시되면 라우팅 컨텍스트에 대해 추적이 활성화되지 않습니다.

23장. JMS 대상 관리

JMX Navigator 뷰를 사용하면 Red Hat Fuse의 실행 중인 인스턴스에서 JMS 대상을 추가하거나 삭제할 수 있습니다.

중요

브로커 재시작 시 이러한 변경 사항은 지속되지 않습니다.

23.1. JMS 대상 추가

23.1.1. 개요

새 시나리오를 테스트할 때 브로커 중 하나에 새 JMS 대상을 추가하는 것이 편리합니다.

23.1.2. 절차

브로커에 JMS 대상을 추가하려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 대상을 추가할 브로커 노드 아래에서 Queues 하위 또는 Topics 하위 항목을 선택합니다.
  2. 선택한 노드를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Create Queue 또는 Create Topic 을 선택합니다.
  3. 큐 만들기 또는 주제 만들기 대화 상자에서 새 대상에 대한 이름을 입력합니다.In either the Create Queue or Create Topic dialog, enter a name for the new destination.
  4. OK를 클릭합니다.
  5. 또는 주제 하위 항목 을 마우스 오른쪽 단추로 클릭한 다음 새로 고침 을 선택합니다.

    새 대상은 Queues 하위 또는 Topics 하위 항목 아래에 JMX Navigator 보기에 나타납니다.

23.2. JMS 대상 삭제

23.2.1. 개요

장애 조치(failover) 시나리오 또는 오류 처리와 관련된 기타 시나리오를 테스트할 때 JMS 대상을 쉽게 제거할 수 있습니다.

23.2.2. 절차

JMS 대상을 삭제하려면 다음을 수행합니다.

  1. JMX Navigator 보기의 Queues 하위 또는 Topics 자식에서 삭제할 JMS 대상을 선택합니다.
  2. 선택한 대상을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Delete Queue/Topic 을 선택합니다.

24장. 라우팅 끝점 관리

JMX Navigator 보기를 사용하면 라우팅 끝점을 추가하거나 삭제할 수 있습니다.

중요

이러한 변경은 라우팅 컨텍스트를 다시 시작할 때 지속되지 않습니다.

24.1. 라우팅 끝점 추가

24.1.1. 개요

새 시나리오를 테스트할 때 라우팅 컨텍스트에 새 엔드포인트를 추가해야 할 수 있습니다.

24.1.2. 절차

라우팅 컨텍스트에 끝점을 추가하려면 다음을 수행합니다.

  1. JMX Navigator 보기의 라우팅 컨텍스트 노드에서 끝점 을 추가할 끝점을 선택합니다.
  2. 선택한 노드를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Create Endpoint 를 선택합니다.
  3. 끝점 생성 대화 상자에서 새 엔드포인트를 정의하는 URL을 입력합니다(예: file://target/messages/validOrders ).
  4. OK를 클릭합니다.
  5. 라우팅 컨텍스트 노드를 마우스 오른쪽 버튼으로 클릭하고 새로 고침 을 선택합니다.

    새 대상이 Endpoints 노드 아래의 JMX Navigator 보기에 표시되고, 폴더에 있는 엔드포인트 유형(예: 파일 )에 해당하는 폴더에 있습니다.

24.2. 라우팅 끝점 삭제

24.2.1. 개요

장애 조치(failover) 시나리오 또는 오류를 처리하는 기타 시나리오를 테스트할 때 라우팅 컨텍스트에서 끝점을 제거할 수 있습니다.

24.2.2. 절차

라우팅 끝점을 삭제하려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 삭제하려는 끝점을 선택합니다.
  2. 선택한 끝점을 마우스 오른쪽 단추로 클릭하여 컨텍스트 메뉴를 연 다음 끝점 삭제를 선택합니다.

    툴링은 끝점을 삭제합니다.

  3. 보기에서 삭제된 끝점을 제거하려면 끝점 노드를 마우스 오른쪽 버튼으로 클릭 하고 새로 고침 을 선택합니다.

    엔드포인트는 JMX Navigator 보기에서 사라집니다.

    참고

    프로젝트를 다시 실행하지 않고 Project Explorer 보기에서 끝점의 노드를 제거하려면 노드를 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택하여 명시적으로 삭제해야 합니다. 보기에서 제거하려면 프로젝트 표시를 새로 고칩니다.

25장. 실행 중인 경로 편집

25.1. 개요

프로젝트의 라우팅 컨텍스트를 변경하지 않고 실행 중인 경로에 대한 변경 사항을 실험할 수 있습니다.

이렇게 하려면 다음을 수행합니다.

  • JMX Navigator 보기에서 실행 중인 라우팅 컨텍스트에서 경로 편집 옵션을 활성화합니다.

    이렇게 하면 경로 편집기에서 메모리  모델이 열립니다.

  • 경로 편집기에서 라우팅 컨텍스트의 메모리 내 모델을 변경합니다. 동시에 Camel 디버거와 모든 기능을 사용하도록 관련 노드에서 중단점을 설정할 수 있습니다.

    메모리 내 모델을 편집하여 노드를 추가, 제거 또는 다시 정렬하고, 기존 노드의 속성을 추가하거나 제거하고 기존 노드에 설정된 속성 값을 수정할 수 있습니다. 메모리 내 모델에 대한 변경 사항을 저장해야 실행 중인 컨텍스트를 업데이트하고, 중단점을 설정한 경우 디버그 화면에 결과를 확인해야 합니다.You must save changes made to the in-memory model to update the running context and to see results in the Debug perspective if you set breakpoints.

  • JMX Navigator 보기에서 실행 중인 라우팅 컨텍스트에서 메시지를 삭제하거나 메시지를 타이머, ActiveMQ, 파일 또는 기타 연속된 입력 노드에서 가져올 때까지 기다립니다.
  • 디버그 관점에서 결과를 평가하고 Camel 디버거를 사용하여 라우팅 컨텍스트에 대한 자세한 정보를 얻습니다.

25.2. 실행 중인 경로 수정 및 결과 평가

  1. JMX Navigator 보기에서 편집하려는 경로가 포함된 라우팅 컨텍스트를 선택합니다.
  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 열고 경로 편집 을 선택합니다.

    경로 편집기는 라우팅 컨텍스트인 Remote CamelContext:<contextId> 의 메모리 내 모델을 열고 컨텍스트 의 모든 경로를 표시합니다. 예를 들면 다음과 같습니다.

    CanvasPalette
    참고

    <contextId >는 프로젝트의 라우팅 컨텍스트 .xml 파일에서 camelContext 요소의 ID입니다. 이 예에서는 Fuse콘텐츠 기반 라우터 기본 제공 템플릿을 기반으로 하는 이 ID는 cbr-example-context 입니다.

  3. 2장. 경로 편집기에서 라우팅 컨텍스트 편집 에 설명된 대로 경로를 편집한 다음 파일저장 을 선택하여 메모리 내 모델에 대한 변경 사항을 저장하고 실행 중인 라우팅 컨텍스트를 업데이트합니다.
  4. 13장. Breakpoints 설정 에 설명된 대로 관련 노드에서 중단점을 설정합니다.
  5. JMX Navigator 보기에서 실행 중인 라우팅 컨텍스트의 입력 노드에 대한 메시지를 삭제합니다.

    프로젝트에 테스트 메시지가 포함되지 않은 경우 22.1절. “경로 추적을 위한 테스트 메시지 생성” 에 설명된 대로 이를 생성할 수 있습니다.

  6. Yes 를 클릭하여 Debug 관점으로 스위치를 확인합니다.
  7. Camel 디버거에서 일반적으로 수행할 때 중단점을 통해 메시지를 단계합니다( 14장. Camel Debugger 실행참조) 변경 사항이 생성된 결과를 확인합니다.

    Camel 디버거는 일반 디버그 모드와 마찬가지로 Edit Routes 모드에서 동일하게 작동하므로 라우팅 컨텍스트를 전달하는 동안 Camel 디버거의 기능을 사용할 수 있습니다.

    참고

    메시지가 라우팅 컨텍스트의 끝에 도달하면 디버거가 일시 중단됩니다. 디버깅을 계속하려면 Fuse Integration 모드로 전환하고 JMX Navigator 보기의 입력 노드에 다른 메시지를 삭제합니다. 이렇게 할 때마다 툴링에서 디버그 관점으로의 전환을 확인하도록 요청합니다.

    참고

    경로 편집 세션 중에 실행 중인 라우팅 컨텍스트에 대한 연결이 손실될 수 있습니다. 이 경우 JMX Navigator 보기에서 로컬 프로세스maven[xxxx][Disconnected] 와 같은 것을 볼 수 있습니다. 세션을 계속하려면 실행 중인 라우팅 컨텍스트에 다시 연결하고, JMX Navigator 보기에서 선택한 다음 경로 편집 을 다시 선택해야 합니다.

25.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 를 클릭하여 라우팅 컨텍스트 파일의 메모리 내 모델을 종료합니다.

26장. 라우팅 컨텍스트 관리

JMX Navigator 뷰를 사용하면 라우팅 컨텍스트를 일시 중단하고 재개할 수 있습니다.

26.1. 라우팅 컨텍스트의 작업 중단

26.1.1. 개요

툴링을 사용하면 JMX Navigator 보기에서 라우팅 컨텍스트의 작업을 일시 중단할 수 있습니다. 컨텍스트 작업을 일시 중지하면 컨텍스트 작업의 모든 경로가 정상적으로 종료되지만 메모리에 로드된 상태로 유지하여 작업을 다시 시작할 수 있습니다.

26.1.2. 절차

라우팅 컨텍스트의 작동을 일시 중단하려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 프로젝트의 Camel Contexts 노드를 확장하고 작업을 일시 중지하려는 라우팅 컨텍스트를 선택합니다.
  2. 선택한 라우팅 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Suspend Camel Context 를 선택합니다.

    참고

    컨텍스트 메뉴에 Resume Camel Context 가 표시되면 컨텍스트 작업이 이미 일시 중지됩니다.

26.2. 라우팅 컨텍스트의 작업 재시작

26.2.1. 개요

툴링을 사용하면 JMX Navigator 보기에서 일시 중단된 라우팅 컨텍스트 작업을 재개할 수 있습니다. 컨텍스트의 작업을 다시 시작하면 메시지를 처리할 수 있도록 모든 경로가 다시 시작됩니다.

26.2.2. 절차

라우팅 컨텍스트의 작업을 재개하려면 다음을 수행합니다.

  1. JMX Navigator 보기에서 프로젝트의 Camel Contexts 노드를 확장하고 작업을 다시 시작할 라우팅 컨텍스트를 선택합니다.
  2. 선택한 컨텍스트를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Resume Camel Context 를 선택합니다.

    참고

    컨텍스트 메뉴에 Suspend Camel Context 가 표시되면 컨텍스트 및 해당 경로가 실행됩니다.

IV 부. 컨테이너에 애플리케이션 게시

Fuse Integration 프로젝트를 서버 컨테이너에 게시하려면 먼저 도구의 서버 목록에 서버와 해당 runime 정의를 추가해야 합니다. 그런 다음 서버 런타임에 프로젝트를 할당하고 게시 옵션을 설정할 수 있습니다.

27장. 서버 관리

참고

Camel 프로젝트를 Red Hat Fuse에 게시하는 방법에 대한 단계별 지침은 28장. 서버에 Fuse 통합 프로젝트 게시 을 참조하십시오.

27.1. 서버 추가

27.1.1. 개요

서버를 관리하기 위한 툴링을 위해 서버를 서버 목록에 추가해야 합니다. 추가되면 서버가 서버 보기에 연결 하여 Fuse Integration 프로젝트를 게시할 수 있습니다.

참고

Red Hat Fuse 서버를 추가하는 경우 installDir/etc/users.properties 파일을 편집하고 사용자 정보를 user=password,role 형식으로 추가하여 툴링을 활성화하여 서버에 대한 SSH 연결을 설정하는 것이 좋습니다.

27.1.2. 절차

서버 보기에 새 서버를 추가하는 방법은 세 가지 있습니다.

  • Servers 보기에서 No servers are available을 클릭합니다. 이 링크를 클릭하여 새 server…​를 만듭니다..

    참고

    이 링크는 서버 가 정의되지 않은 경우에만 서버 보기에 나타납니다. 프로젝트를 처음 생성할 때 서버를 정의하고 추가한 경우 서버 보기에 해당 서버 가 표시됩니다.

  • 서버 보기에서 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 열고 서버 를 선택합니다.
  • 메뉴 모음에서 파일기타 → 서버 → 서버 를 선택합니다.

새 서버 정의 대화 상자에서 새 서버를 추가합니다.In the Define a New Server dialog, to add a new server:

  1. Red Hat JBoss Middleware 노드를 확장하여 사용 가능한 서버 옵션 목록을 노출합니다.

    서버 목록
  2. 추가할 서버를 클릭합니다.
  3. 서버의 호스트 이름 필드에서 기본값(localhost)을 허용합니다.

    참고

    localhost 의 주소는 0.0.0.0 입니다.

  4. 서버 이름 필드에서 기본값을 수락하거나 런타임 서버에 다른 이름을 입력합니다.
  5. 서버 런타임 환경 의 경우 기본값을 사용하거나 추가 를 클릭하여 서버의 런타임 정의 페이지를 엽니다.

    서버 추가
    참고

    서버가 시스템에 설치되어 있지 않은 경우, Download and install runtime…​ 을 클릭하고 사이트의 다운로드 지침에 따라 지금 설치할 수 있습니다. 사이트에 따라 다운로드 프로세스를 계속 진행하기 전에 유효한 자격 증명을 제공해야 할 수 있습니다.Depending on the site, you might be required to provide valid credentials before you can continue the download process.

  6. 설치 이름 에 기본값을 적용합니다.
  7. Home Directory (홈 디렉터리) 필드에 서버 런타임이 설치된 경로를 입력하거나 찾아보기 를 클릭하여 찾아 선택합니다.
  8. 실행 환경 옆에 있는 드롭다운 메뉴에서 런타임 JRE를 선택합니다.

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

    참고

    필수 Java 버전에 대한 Red Hat Fuse 지원 구성 을 참조하십시오.

  9. 대체 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 파일에서 기본 사용자가 활성화(권장되지 않음)인 경우 툴링은 [servCnfig Details] 과 같이 사용자 이름암호 필드를 자동으로 채웁니다.

    사용자가 설정되지 않은 경우 user=password,role (예: joe=secret,Administrator) 형식을 사용하여 해당 파일에 하나를 추가하거나 karaf jaas 명령을 사용하여 설정할 수 있습니다.

    • JAAS:realms super-epto 영역을 나열합니다.
    • JAAS:manage --index 1 에서 첫 번째 영역(server) 영역을 편집합니다.
    • JAAS:useradd <username> <password > <password> 사용자 및 관련 암호 추가
    • JAAS:roleadd <username> Administrator ECDHE-roleadd 새 사용자의 역할을 지정합니다.
    • JAAS: 업데이트 새 사용자 정보로 영역을 업데이트

    jaas 영역을 이미 서버에 선택한 경우 JBossFuse:karaf@root>jaas: users명령을 실행하여 사용자 이름을 확인할 수 있습니다.

  13. 암호 필드에 User Name (사용자 이름)에 필요한 암호를 입력하여 서버에 로그인합니다.
  14. Finish (완료)를 클릭하여 서버의 구성 세부 정보를 저장합니다.

    서버 런타임이 서버 보기에 나타 니다.

    서버 노드를 확장하면 서버의 JMX 노드가 노출됩니다.

    UGnewServrInstalledExpand

27.2. 서버 시작

27.2.1. 개요

구성된 서버를 시작하면 툴에서 서버의 원격 관리 콘솔을 터미널 보기에서 엽니다. 이를 통해 애플리케이션을 테스트하는 동안 컨테이너를 쉽게 관리할 수 있습니다.

27.2.2. 절차

서버를 시작하려면 다음을 수행합니다.

  1. 서버 보기에서 시작할 서버를 선택합니다.
  2. run button 을 클릭합니다.

    • 콘솔 보기가 열리고 컨테이너가 시작될 때 대기하도록 요청하는 메시지가 표시됩니다. 예를 들면 다음과 같습니다.

      UGservrStartConsoleV
      참고

      원격 콘솔을 열기 위해 사용자 이름 및 암호를 올바르게 구성하지 않은 경우 적절한 인증 정보를 입력하도록 요청하는 대화 상자가 열립니다. 27.1절. “서버 추가” 을 참조하십시오.

    • 컨테이너가 시작되면 터미널 보기가 열리고 컨테이너의 관리 콘솔이 표시됩니다.
    • 실행 중인 서버가 서버 보기에 나타 니다.

      UGservrStartServrsView
    • 실행 중인 서버는 Server Connections 아래의 JMX Navigator 보기에도 나타납니다.

      UGservStartJMXNavView
      참고

      서버가 툴링과 동일한 시스템에서 실행 중인 경우 서버에 로컬 프로세스 아래에 항목도 있습니다.

27.3. 실행 중인 서버에 연결

27.3.1. 개요

구성된 서버를 시작한 후 서버 보기 및 Server Connections 노드 아래의 JMX Navigator 보기에 나타납니다. 서버를 보려면 서버 연결 노드를 확장해야 할 수 있습니다.

실행 중인 서버에서 Fuse 프로젝트 애플리케이션을 게시하고 테스트하려면 먼저 이를 연결해야 합니다. 서버 보기 또는 JMX Navigator 보기에서 실행 중인 서버에 연결할 수 있습니다.

참고

Servers 보기 및 JMX Navigator 보기는 서버 연결과 관련하여 동기화됩니다. 즉, 서버 보기에서 서버에 연결하는 것도 JMX Navigator 뷰에 연결하며 그 반대의 경우도 마찬가지입니다.

27.3.2. 서버 보기에서 실행 중인 서버에 연결

  1. 서버 보기에서 서버 런타임을 확장하여 JMX[Disconnected] 노드를 노출합니다.
  2. JMX[Disconnected] 노드를 두 번 클릭합니다.

    UGservrStartServrsView

27.3.3. JMX Navigator 보기에서 실행 중인 서버에 연결

  1. JMX Navigator 보기에서 서버 연결 노드에서 연결할 서버를 선택합니다.
  2. 선택한 서버를 두 번 클릭합니다.

    UGservConnectJMXNav

27.3.4. 연결된 서버에 설치된 번들 보기

  1. 서버 보기 또는 JMX Navigator 보기에서 서버 런타임 트리를 확장하여 번들 노드를 노출한 후 선택합니다.
  2. 툴링은 서버에 설치된 번들 목록으로 Properties 뷰를 채웁니다.

    UGservBundles

    속성 뷰의 검색 도구를 사용하여 Symbolic Name 또는 해당 식별자 로 번들 번들을 검색할 수 있습니다. 심볼릭 이름 또는 식별자를 입력하면 목록이 업데이트되어 현재 검색 문자열과 일치하는 번들만 표시됩니다.

    참고

    또는 터미널 보기에서 osgi:list 명령을 실행하여 Red Hat Fuse 서버 런타임에 설치된 생성된 번들 목록을 확인할 수 있습니다. 툴링은 osgi:list 명령으로 표시되는 OSGi 번들에 대해 다른 이름 지정 체계를 사용합니다.

    프로젝트의 pom.xml 파일의 < build > 섹션에서 maven-bundle-plugin 항목에 나열된 번들 이름 및 해당 번들 이름(OSGi)을 찾을 수 있습니다. 자세한 내용은 “프로젝트가 서버에 게시되었는지 확인” 에서 참조하십시오.

27.4. 서버에서 연결 해제

27.4.1. 개요

애플리케이션 테스트를 완료하면 중지하지 않고 서버에서 연결을 끊을 수 있습니다.

참고

Servers 보기 및 JMX Navigator 보기는 서버 연결과 관련하여 동기화됩니다. 즉, Servers 보기에서 서버에서 연결을 끊는 것도 JMX Navigator 보기에서 연결 해제되며 그 반대의 경우도 마찬가지입니다.

27.4.2. 서버 보기에서 서버의 연결을 끊습니다.

  1. 서버 보기에서 서버 런타임을 확장하여 JMX[Connected] 노드를 노출합니다.
  2. JMX[Connected] 노드를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 Disconnect 를 선택합니다.

    disconnect

27.4.3. JMX Navigator 보기에서 서버의 연결을 끊습니다.

  1. JMX Navigator 보기에서 서버 연결 아래에서 연결 을 끊을 수 있는 서버를 선택합니다.
  2. 선택한 서버를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 연결 끊기 를 선택합니다.

    JMX의 연결을 끊습니다.

27.5. 서버 중지

27.5.1. 개요

터미널 보기에서 서버 보기 또는 서버 의 원격 콘솔에서 서버를 종료할 수 있습니다.

27.5.2. 서버 보기 사용

서버를 중지하려면 다음을 수행합니다.

  1. 서버 보기에서 중지할 서버를 선택합니다.
  2. stop button 을 클릭합니다.

27.5.3. 원격 콘솔 사용

서버를 중지하려면 다음을 수행합니다.

  1. 서버의 원격 콘솔을 호스팅하는 터미널 보기를 엽니다.
  2. Ctrl D+누릅니다.

27.6. 서버 삭제

27.6.1. 개요

구성된 서버를 마치거나 서버를 잘못 구성하는 경우 해당 서버와 해당 구성을 삭제할 수 있습니다.

먼저 서버 보기 또는 JMX Navigator 보기에서 서버 를 삭제합니다. 다음으로 서버의 구성을 삭제합니다.

27.6.2. 서버 삭제

  1. 서버 보기에서 삭제할 서버를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  2. 삭제를 선택합니다.
  3. OK를 클릭합니다.

27.6.3. 서버 구성 삭제

Linux 및 Windows 컴퓨터에서 → 기본 설정 선택합니다.

  1. 서버 폴더를 확장한 다음 런타임 환경을 선택하여 서버 런타임 환경 페이지를 엽니다.Expand the Server folder, and then select Runtime Environments to open the Server Runtime Environments page.
  2. 목록에서 이전에 서버 보기에서 삭제한 서버의 런타임 환경을 선택 한 다음 제거 를 클릭합니다.
  3. OK를 클릭합니다.

28장. 서버에 Fuse 통합 프로젝트 게시

Eclipse 게시 메커니즘을 사용하여 Fuse Integration 프로젝트를 서버 런타임에 배포합니다. 이렇게 하려면 Fuse 통합 관점에서 서버를 서버 보기에 정의하고 추가해야 합니다. 단계별 데모는 를 참조하십시오.

28.1. 개요

할당된 Fuse 프로젝트를 자동으로 게시하거나 publish 명령을 수동으로 호출할 때만 게시하도록 지원되는 서버를 설정할 수 있습니다.

서버 뷰에 추가된 각 서버 런타임에는 구성, 연결 및 게시 세부 정보가 포함된 자체 개요 페이지가 있습니다.

UGservRuntimeOverviewTab

서버 런타임 게시 옵션 및 기본 설정을 노출하려면 게시를 확장해야 할 수 있습니다.

  • 프로젝트 를 수동으로 게시 하려면 이 옵션을 선택해야 합니다.

    중요

    또한 서버가 시작된 경우 변경 사항을 서버의 추가 및 제거 페이지에서 즉시 게시 해야 합니다(자세한 내용은 “수동으로 Fuse 프로젝트 게시” 참조).

  • 리소스 변경 시 자동으로 게시 하면 이 옵션을 사용하여 변경 사항을 저장할 때 Fuse 프로젝트를 자동으로 게시하거나 다시 게시할 수 있습니다. 프로젝트를 얼마나 빠르게 게시했는지는 게시 간격 (기본값은 15초)에 따라 달라집니다.
  • 빌드 이벤트 후 자동으로 게시하면 리소스가 변경될 때 자동으로 게시되는 것과 동일하게 작동합니다.

28.2. 리소스가 변경될 때 Fuse 프로젝트 자동 게시

서버 런타임에 대한 기본 게시 옵션은 리소스가 변경될 때 자동으로 게시 됩니다.

  1. 필요한 경우 Fuse 프로젝트를 게시하려는 서버 런타임을 시작합니다. 자세한 내용은 27.2절. “서버 시작”의 내용을 참조하십시오.
  2. 서버 보기에서 서버 런타임을 두 번 클릭하여 개요 페이지를 엽니다.
  3. 게시 를 확장 한 다음 리소스 변경 시 자동으로 게시 를 선택합니다.
  4. 게시 주기 간의 간격을 늘리거나 줄이려면 필요에 따라 게시 간격(초) 옆에 있는 라디오 버튼을 클릭합니다.
  5. 서버 보기에서 서버 런타임을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 연 다음 추가 및 제거를 선택합니다.

    UGservAddRemove1

    게시에 사용 가능한 모든 리소스가 Available 열에 표시됩니다.

  6. 서버 런타임에 리소스(이 경우 CBRroute Fuse 프로젝트)를 할당합니다.

    • 두 번 클릭 또는
    • 이를 선택하고 추가 를 클릭합니다.

      선택한 리소스는 Configured 열로 이동 합니다.

      UGservAddRemove2

      이 단계에서는 할당된 리소스가 실제로 게시되는 시간은 서버 런타임이 실행 중인지 및 게시 간격 설정에 따라 달라집니다.At this stage, the time at which the assigned resource would actually be published depends on whether the server runtime was running and on the Publishing interval setting. 그러나 서버가 중지된 경우 서버를 시작한 후 프로젝트를 수동으로 게시해야 합니다(자세한 내용은 “수동으로 Fuse 프로젝트 게시”참조).

  7. 서버가 시작된 경우 변경 사항을 즉시 게시 하여 활성화할 수 있습니다.

    UGservAddRemove3

    이 옵션을 사용하면 완료 를 클릭하면 구성된 프로젝트가 즉시 게시됩니다. 서버 런타임 개요 페이지의 리소스 변경 옵션을 자동으로 게시하면 로컬 프로젝트의 변경 사항이 저장될 때마다 구성된 프로젝트가 다시 게시되도록 합니다.

  8. 완료를 클릭합니다.

    프로젝트가 서버 런타임 노드 아래에 있는 서버 보기에 표시되고 서버 런타임 상태가 [Started,Publishing…​] 로 표시됩니다.

    게시가 완료되면 서버 런타임 및 프로젝트 보고서의 상태는 [Started,Synchronized] 입니다.

    UGservPublishSynched
    참고

    서버 런타임의 경우 Synchronized는 서버에서 게시된 모든 리소스가 로컬 상대와 동일하다는 것을 의미합니다.For a server runtime, Synchronized means that all published resources on the server are identical to their local counterparts. 게시된 리소스의 경우 Synchronized는 로컬 상대와 동일하다는 것을 의미합니다.For a published resource, Synchronized means that it is identical to its local counterpart.

28.3. 수동으로 Fuse 프로젝트 게시

  1. 필요한 경우 Fuse 프로젝트를 게시하려는 서버 런타임을 시작합니다. 자세한 내용은 27.2절. “서버 시작”의 내용을 참조하십시오.
  2. 서버 보기에서 서버 런타임을 두 번 클릭하여 개요 페이지를 엽니다.
  3. 게시 를 확장한 다음 자동으로 게시 를 선택합니다.
  4. 파일저장 을 클릭하여 게시 옵션 변경 사항을 저장합니다.
  5. Fuse 프로젝트가 이미 서버 런타임에 할당된 경우 이 옵션이 비활성화되어 있는지 확인합니다. 서버가 시작된 경우 변경 사항을 즉시 게시 하십시오.

    1. 서버 보기에서 서버 런타임을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
    2. Add and Remove…​ 를 클릭하여 서버의 추가 및 제거 페이지를 엽니다.
    3. 다음 옵션이 활성화되어 있으면 비활성화: 서버가 시작된 경우 변경 사항을 즉시 게시 합니다.
    4. [완료] 로 건너뛰십시오.
  6. Fuse 프로젝트가 서버 런타임에 할당되지 않은 경우 지금 할당합니다.

    1. [startAssignResource] - “리소스가 변경될 때 Fuse 프로젝트 자동 게시” 에서 [stopAssignResource] 로 이동합니다.
    2. 서버가 시작된 경우 변경 사항을 즉시 게시 하지 마십시오.
  7. 를 클릭합니다.

    프로젝트는 서버 런타임 노드 아래에 서버 보기에 표시되고 서버 런타임 상태 보고서 [시작 ]:

    UGservPublishSynched
  8. Servers 보기에서 프로젝트의 노드를 마우스 오른쪽 버튼으로 클릭합니다. 이 예에서는 CBRroute Fuse 프로젝트를 선택하여 컨텍스트 메뉴를 엽니다.

    UGassgnProjSrvViewCntxtMnu
  9. 전체 게시 를 선택합니다.

    게시 작업 중에 서버 런타임 및 프로젝트 보고서 [시작됨,Republish] 의 상태입니다.

    게시가 완료되면 서버 런타임 및 프로젝트 보고서 [Started,Synchronized ]:

    참고

    이 툴링은 Incremental Publish 옵션을 지원하지 않습니다. Incremental Publish 를 클릭하면 전체 게시가 생성됩니다.

28.4. 프로젝트가 서버에 게시되었는지 확인

Fuse 프로젝트를 서버 런타임에 게시한 후 서버에 연결하여 프로젝트의 번들이 설치되었는지 확인할 수 있습니다.

  1. 서버 런타임에 연결합니다. 자세한 내용은 “서버 보기에서 실행 중인 서버에 연결” 에서 참조하십시오.
  2. 서버 보기에서 서버 런타임 트리를 확장하여 번들 노드를 표시하고 선택합니다.

    툴링은 서버에 설치된 번들 목록으로 Properties 뷰를 채웁니다.

    UGsrvVerifyPublishedProj
  3. 프로젝트 번들을 찾으려면 목록 하단까지 아래로 스크롤하거나 속성 보기의 검색 상자에 번들의 Symbolic Name 을 입력합니다. 번들의 Symbolic Name 은 프로젝트를 만들 때 프로젝트에 제공한 이름입니다.

    참고

    또는 터미널 보기에서 osgi:list 명령을 실행하여 생성된 번들 목록을 Fuse 서버 런타임에 설치할 수도 있습니다. 툴링은 osgi:list 명령으로 표시되는 OSGi 번들에 대해 다른 이름 지정 체계를 사용합니다.

    프로젝트의 pom.xml 파일의 < build > 섹션에서, maven-bundle-plugin 항목에 나열된 번들 이름 및 해당 번들 이름(OSGi)을 찾을 수 있습니다. 예를 들면 다음과 같습니다.

    ugBundleNamesPomFile

부록 A. Fuse Integration Perspective

Fuse Integration 관점을 사용하여 통합 애플리케이션을 설계, 모니터링, 테스트 및 게시합니다.

Fuse Integration 모드

다음과 같은 방법으로 Fuse Integration 관점을 열 수 있습니다.

  • 새로운 Fuse Integration 프로젝트를 생성할 때( 1장. 새 Fuse 통합 프로젝트 생성참조), 툴링이 Fuse Integration 관점으로 전환됩니다.
  • 툴 모음에서 integration perspective 을 클릭합니다. 툴 모음에서 integration perspective 아이콘을 사용할 수 없는 경우 new persp 를 클릭하고 사용 가능한 화면 목록에서 Fuse Integration 을 선택합니다.
  • WindowPerspectiveOpen PerspectiveFuse Integration 을 선택합니다.

Fuse 통합 관점은 9가지 주요 영역으로 구성되어 있습니다.

  • 프로젝트 탐색기 보기

    툴에 알려진 모든 프로젝트를 표시합니다. 각 프로젝트를 구성하는 모든 아티팩트를 볼 수 있습니다. Project Explorer 보기에 Camel Contexts 노드 아래에 프로젝트에 대한 모든 라우팅 컨텍스트 .xml 파일이 표시됩니다. 이를 통해 프로젝트에 포함된 라우팅 컨텍스트 파일을 찾아서 열 수 있습니다. 각 라우팅 컨텍스트 .xml 파일에서 Project Explorer 보기에 컨텍스트 내에 정의된 모든 경로가 표시됩니다. 다중 경로 컨텍스트의 경우 이를 통해 캔버스의 특정 경로에 집중할 수 있습니다.

    ProjectExplorerFIP
  • 경로 편집기

    기본 디자인 타임 툴링을 제공하며 다음 세 개의 탭으로 구성됩니다.

    • 경로가 구성되는 대  그리드 영역과 EIP(Enterprise Integration Patterns) 및 Camel 구성 요소를 선택한 다음 캔버스에서 연결하여 경로를 형성합니다.

      CanvasPalette

      캔버스는 경로 편집기의 워크벤치이며 대부분의 작업을 수행하는 곳입니다. 연결된 EIP 및 Camel 구성 요소( canvas에 배치되면 노드라고 함)로 구성된 하나 이상의 경로의 그래픽 표현을 표시합니다.

      캔버스의 노드를 선택하면 선택한 노드에 적용되는 속성 보기가 속성 보기로 채워지므로 편집할 수 있습니다.Selecting a node on the canvas populates the Properties view with the properties that apply to the selected node, so you can edit them.

      Palette 에는 경로 구성 요소,라우팅,제어 흐름,변환Miscellaneous 에 따라 경로를 구성하고 그룹화하는 데 필요한 모든 패턴과 Camel 구성 요소 가 포함되어 있습니다.

    • 소스

      경로 편집기의 캔버스에 구성된 경로에 대한 .xml 파일의 내용을 표시합니다.

      소스 탭과 디자인 탭에서 라우팅 컨텍스트를 편집할 수 있습니다. 소스 탭은 라우팅 컨텍스트 파일에 구성, 주석 또는 빈을 편집하고 추가하는 데 유용합니다. 콘텐츠 지원 기능은 구성 파일을 사용할 때 도움이 됩니다. 소스 탭에서 Ctrl+Space 눌러 프로젝트에 삽입할 수 있는 가능한 값 목록을 확인합니다.

      SourceView
    • 구성

      다중 경로 라우팅 컨텍스트에 공유 구성(글로벌 엔드포인트, 데이터 형식, 빈)을 쉽게 추가할 수 있는 방법을 제공합니다. 자세한 내용은 2.6절. “글로벌 끝점, 데이터 형식 또는 빈 추가” 에서 참조하십시오.

      CnfigsVAddButton
    • REST

      Rest DSL 구성 요소에 대한 그래픽 표현을 제공합니다.

      RESTtab
  • 속성 보기

    캔버스에서 선택한 노드의 속성을 표시합니다.

  • JMX Navigator 보기

    JMX 서버와 모니터링하는 인프라를 나열합니다. 이 도구를 사용하면 JMX 서버를 찾아볼 수 있으며 모니터링 작업을 수행할 수 있습니다. 또한 Red Hat 프로세스 인스턴스를 식별합니다.

    JMX Navigator 뷰는 Fuse 통합 관점에서 모든 모니터링 및 테스트 활동을 유도합니다. 다이어그램 보기, 속성 보기 및 메시지 보기에 표시되는 경로를 결정합니다.It determines which routes are displayed in the diagram view , the Properties view, and the Messages View. 또한 경로 추적을 활성화, JMS 대상 추가 및 삭제, 경로 시작 및 일시 중지를 위한 메뉴 명령도 제공합니다. 메시지를 경로에 끌어 놓기 위한 대상이기도 합니다.

    기본적으로 JMX Navigator 보기에는 로컬 컴퓨터에서 실행 중인 모든 Java 프로세스가 표시됩니다. 필요에 따라 JMX 서버를 추가하여 다른 시스템에서 인프라를 볼 수 있습니다.

  • 다이어그램 보기

    JMX Navigator 보기에서 선택한 노드를 나타내는 그래픽 트리를 표시합니다. 프로세스, 서버, 엔드포인트 또는 기타 노드를 선택하면 다이어그램 보기는 선택한 노드를 루트로 표시하고 자식 및 손자로 분기합니다.When you select a process, server, endpoint, or other node, the diagram View shows the selected node as the root with branch down to its children and grand children.

    브로커를 선택하면 다이어그램 보기가 최대 3개의 자식, 즉 연결, 주제 및 대기열을 표시합니다. 또한 구성된 연결 및 대상을 손주로 표시합니다.

    경로를 선택하면 다이어그램 보기에 경로에 모든 노드가 표시되고 메시지가 경로를 통해 가져올 수 있는 다른 경로가 표시됩니다. 또한 경로 추적을 활성화할 때 경로의 각 처리 단계에 대한 타이밍 지표를 표시합니다.

  • 메시지 보기

    경로 추적을 활성화하면 선택한 JMS 대상 또는 Apache Camel 엔드포인트를 통해 전달되는 메시지를 나열합니다.

    JMX Navigator 보기에서 JMS 대상이 선택되면 이 보기에는 대상에 있는 모든 메시지가 나열됩니다.

    경로 추적이 활성화되면 메시지 보기 는 추적이 시작된 이후 경로의 노드를 통해 전달되는 모든 메시지를 나열합니다. 관심 있는 데이터 및 기본 순서로 표시하도록 메시지 보기 를 구성할 수 있습니다.

    메시지 보기에서 메시지 추적을 선택하면 세부 정보(메시지 본문 및 모든 메시지 헤더)가 속성 보기에 표시됩니다. 다이어그램 보기에서 선택한 메시지 추적과 연결된 경로의 단계가 강조 표시됩니다.

  • 서버 보기

    툴에서 관리하는 서버 목록을 표시합니다. 런타임 상태를 표시하고 추가, 시작 및 중지하고 프로젝트에 게시하기 위한 컨트롤을 제공합니다.

  • 터미널 보기

    연결된 컨테이너의 명령 콘솔을 표시합니다. 터미널 보기에서 명령을 입력하여 컨테이너를 제어할 수 있습니다.

  • 콘솔 보기

    최근 실행된 작업의 콘솔 출력을 표시합니다.

부록 B. 디버그 관점

디버그 화면을 사용하여 실행 중인 Camel 컨텍스트를 모니터링하고 디버깅합니다.

Camel 컨텍스트 디버거
  • 디버그 보기

    실행 중인 Camel 컨텍스트의 경우 Debug 뷰에 디버그 스택이 표시됩니다.

    service:jmx:rmi://jndi/rmi://localhost:1099/jmxrmi/camel 항목의 Camel Context 아래에 나열된 동일한 메시지 흐름 내에서 정지점을 전환하여 변수 보기에서 변수 값을 검토하고 비교할 수 있습니다.

    메시지 흐름은 고유한 이동 경로 ID로 식별되며 이후의 각 메시지 흐름의 이동 경로 ID는 2씩 증가합니다. 예를 들어 첫 번째 메시지 흐름의 이동 경로 ID가 ID-janemurpheysmbp-home-54620-1470949590275-0-1 인 경우 두 번째 메시지 흐름의 이동 경로 ID는 ID-janemurpheysmbp-home-54620-1470949575-0-3 입니다.

  • 변수 보기

    중단점이 설정된 라우팅 컨텍스트의 각 노드에 대해 중단점에 도달할 때 변수 뷰에 사용 가능한 변수의 값이 표시됩니다.For each node in the routing context that has a breakpoint set, the Variables view displays the value of the available variables when the breakpoint is hit. 이전 중단점이 표시된 이후 변경된 각 변수는 노란색으로 강조 표시됩니다.Each variable who's value changed since the preceding breakpoint is highlighted in yellow.

    편집 가능한 변수 값을 변경하여 이러한 변경으로 예상 결과를 생성하고 라우팅 컨텍스트의 견고성을 테스트할 수 있습니다.

    시계 목록에 변수를 추가할 수도 있으므로 메시지 흐름의 예상 지점에서 값이 예상대로 변경되었는지 쉽고 빠르게 확인할 수 있습니다.

  • breakpoints 보기

    라우팅 컨텍스트에 설정된 중단점 목록을 표시하고 해당 항목이 활성화 또는 비활성화되었는지 여부를 표시합니다. 개별 정지점을 활성화 및 비활성화할 수 있습니다(활성화) 또는 unchecking (disabling)합니다. 이렇게 하면 문제가 있는 라우팅 컨텍스트의 노드에 일시적으로 집중할 수 있습니다.

    resume co 버튼은 비활성화된 Cryostat를 통해 건너뛰어 라우팅 컨텍스트에서 다음 활성 Cryostat로 이동합니다. 반대로 stepover co 버튼은 Cryostat에 관계없이 라우팅 컨텍스트에서 다음 실행 노드로 이동합니다.

  • Camel Context.xml 보기

    는 그래픽 모드에서 실행 중인 라우팅 컨텍스트 파일을 표시합니다. 중단점을 사용하여 설정된 노드의 경우 중단점 세트 유형과 중단점이 활성화되어 있는지 여부를 표시합니다.For nodes set with breakpoints, it shows the type of breakpoint set and whether the breakpoint is enabled or disabled. 중단점에 도달하면 캔버스의 해당 노드가 빨간색으로 요약됩니다.When a breakpoint is hit, its corresponding node on the canvas is outlined in red.

    노드의 구성을 확인하려면 속성 보기를 연 다음 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.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동