Eclipse에서 플러그인 서버를 실행하여 프로토콜 플러그인 디버깅

Eclipse에서 플러그인 서버를 실행하여 프로토콜 플러그인을 디버그할 수 있습니다.

시작하기 전에

SDK 번들의 컨텐츠를 다운로드하여 압축을 푸십시오. 그런 다음 ImaTools/ImaPlugin/README.txt의 지시사항에 따라 SDK 번들과 함께 제공되는 샘플 플러그인 프로젝트를 가져오십시오.

이 태스크 정보

Eclipse에서 프로토콜 플러그인 서버를 실행하는 경우, 프로토콜 플러그인 서버 프로세스를 원격으로 실행하고 IBM® IoT MessageSight 서버를 사용하여 외부 플러그인 서버 프로세스에 메시지를 전달할 수 있습니다. 이 방법은 개발 초기 단계에서 사용하기 위한 것입니다. 이 방법을 사용하여 plugin.json 디스크립터 파일만 있고 JAR 파일은 없는 플러그인 .zip 파일을 배치할 수 있습니다. 그런 다음 서버에 플러그인 .zip 파일을 다시 배치하지 않고 로컬 개발 환경에서 플러그인 클래스를 디버그하고 업데이트할 수 있습니다. 이 디버깅 방법을 사용할 때는 비표준 버전의 plugin.json 파일을 사용해야 합니다. 이러한 버전의 파일은 개발 환경에서 사용자 플러그인 클래스의 클래스 경로를 제공합니다.

이후 개발 단계에서 IBM IoT MessageSight 서버에 사용자의 프로덕션 프로토콜 플러그인을 설치하고 실행하여 해당 프로덕션 프로토콜 플러그인을 테스트해야 합니다. 추가 정보는 IBM IoT MessageSight 서버에서 플러그인 서버 및 플러그인을 실행하여 프로토콜 플러그인 디버깅의 내용을 참조하십시오.

프로시저

  1. Eclipse에서 프로토콜 서버를 실행하십시오.
    1. 실행 메뉴에서 외부 도구 > 외부 도구 구성...을 선택하십시오.
    2. 프로그램을 마우스 오른쪽 단추로 클릭하여 새로 작성을 선택하십시오.
    3. 이름 필드에 ImaPluginServerInEclipse를 입력하십시오.
    4. 위치 필드에 플러그인 서버를 시작하는 Java™ 실행 파일의 전체 경로를 입력하십시오.

      예를 들어, Windows에서는 경로가 C:\eclipse\jdk\jre\bin\java.exe와 같습니다.

    5. 인수 필드에 프로토콜 플러그인 서버를 실행하기 위한 다음 인수를 입력하십시오. -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar path_to_SDKInstall/ImaTools/ImaPlugin/lib/imaPlugin.jar -i @
      참고:
      • 사용하는 환경에 올바른 path_to_SDKInstall 값을 입력해야 합니다.
      • 플러그인 서버는 9091 포트를 사용합니다. 프로세스를 시작하기 전에 이 포트가 사용 가능한지 확인해야 합니다.
      • 주소에 지정하는 값은 Eclipse 원격 디버거 구성에 지정하는 포트 값과 일치해야 합니다. 이 포트 값은 2e단계에서 지정합니다.
    6. 적용을 클릭하십시오.
    7. 실행을 클릭하여 프로토콜 플러그인 서버를 시작하십시오.
  2. Eclipse에서 실행 중인 플러그인 서버에 대해 Eclipse 원격 Java 디버거를 시작하십시오.
    1. 실행 메뉴에서 구성 디버그...를 선택하십시오.
    2. 원격 Java 애플리케이션을 마우스 오른쪽 단추로 클릭하여 새로 작성을 선택하십시오.
    3. 이름 필드에 ImaPluginOnEclipse를 입력하십시오.
    4. 호스트 필드에 Eclipse를 실행 중인 호스트의 IP 주소를 입력하십시오.
    5. 포트 필드에 8000을 입력하십시오.
      참고: 이 포트 값은 Eclipse에서 플러그인 서버를 실행하기 위한 인수의 주소에 지정한 값과 일치해야 합니다. 이 값은 1e단계에서 지정합니다.
    6. 소스 탭을 선택하고 추가를 클릭하십시오.
    7. Java 프로젝트를 선택하고 확인을 클릭하십시오.
    8. 디버그할 플러그인이 있는 프로젝트를 선택하고 확인을 클릭하십시오.
    9. 적용을 클릭하십시오.
    10. 디버그를 클릭하십시오.
  3. Eclipse에서 실행 중인 플러그인 서버를 사용하여 플러그인을 디버그하려면 plugin.json 디스크립터 파일의 디버그 버전을 작성해야 합니다. Classpath 특성을 Eclipse에서 디버그할 플러그인의 컴파일된 클래스 위치로 설정하십시오.

    예를 들어, SDK 번들에서 제공되는 샘플 플러그인을 디버그하려면 Classpathpath_to_SDKInstall/ImaTools/ImaPlugin/samples/jsonmsgPlugin/bin으로 설정하십시오.

    참고: Windows에서 Eclipse를 실행하는 경우, 경로에서 사용되는 백슬래시(\)를 슬래시(/)로 변환하거나 이중 백슬래시(\\)를 사용해야 합니다.
  4. zip의 루트 디렉토리에 디버그 plugin.json 파일만 있는 .zip 파일을 작성하십시오.
  5. IBM IoT MessageSight 서버에 .zip 파일을 설치하십시오. 추가 정보는 프로토콜 플러그인 구성의 내용을 참조하십시오.
  6. Eclipse에서 실행 중인 디버그 플러그인 서버에 메시지를 전달하도록 IBM IoT MessageSight 서버를 구성하십시오.
    1. IBM IoT MessageSight REST API POST 메소드를 다음 IBM IoT MessageSight 구성 URI와 함께 사용하여 PluginDebugPort 오브젝트가 설정되지 않았는지 확인하십시오.

      http://<admin-endpoint-IP:Port>/ima/v1/configuration/

      다음 스키마를 사용하여 POST 메소드의 페이로드(payload)에서 PluginDebugPort 오브젝트 구성 데이터를 제공하십시오. Content-typeapplication/json으로 설정됩니다. 대문자와 큰따옴표가 표시된 대로 사용되는지 확인하십시오.
      {    
        "PluginDebugPort": 0
      }
    2. IBM IoT MessageSight REST API POST 메소드를 다음 IBM IoT MessageSight 구성 URI와 함께 사용하여 PluginDebugServer 특성을 Eclipse가 플러그인 서버를 실행 중인 호스트의 IP 주소로 설정하십시오.

      http://<admin-endpoint-IP:Port>/ima/v1/configuration/

      다음 스키마를 사용하여 POST 메소드의 페이로드(payload)에서 PluginDebugServer 오브젝트 구성 데이터를 제공하십시오. Content-typeapplication/json으로 설정됩니다. 대문자와 큰따옴표가 표시된 대로 사용되는지 확인하십시오.
      {    
        "PluginDebugServer": "string"
      }
      각 항목에 대한 설명:
      PluginDebugServer
      Eclipse가 플러그인 서버를 실행 중인 호스트의 IPv4 또는 IPv6 주소를 지정합니다.
      기본적으로 이 값은 설정되지 않습니다.
      팁: IBM IoT MessageSight REST API GET 메소드를 다음 IBM IoT MessageSight 구성 URI와 함께 사용하여 PluginDebugServer 오브젝트의 값을 검사할 수 있습니다.
      http://<admin-endpoint-IP:Port>/ima/v1/configuration/PluginDebugServer

    3. IBM IoT MessageSight REST API POST 메소드를 다음 IBM IoT MessageSight 구성 URI와 함께 사용하여 서버를 중지하고 재시작하십시오.

      http://<admin-endpoint-IP:port>/ima/v1/service/restart

      다음 스키마를 사용하여 POST 메소드의 페이로드(payload)에서 구성 데이터를 제공하십시오. Content-typeapplication/json으로 설정됩니다. 대문자와 큰따옴표가 표시된 대로 사용되는지 확인하십시오.
      {    
        "Service": "Server"
      }
  7. 플러그인 소스 코드에 중단점을 설정하고 플러그인에 구현된 프로토콜의 클라이언트 애플리케이션을 사용하여 코드를 디버그하십시오.
  8. 옵션: 디버깅을 시작한 후 IBM IoT MessageSight 서버를 중지하거나 플러그인 서버 프로세스 또는 원격 Java 디버거를 중지하는 경우 세 프로세스를 모두 재시작해야 합니다.
    1. Eclipse의 실행 메뉴에서 외부 도구를 선택하십시오.
    2. 작성한 ImaPluginServerInEclipse 구성을 선택하십시오.
    3. 실행 메뉴에서 구성 디버그...를 선택하십시오.
    4. 원격 Java 애플리케이션을 찾아 ImaPlugInOnEclipse를 선택하십시오. 그런 다음 디버그를 클릭하십시오.
    5. IBM IoT MessageSight 서버에서 IBM IoT MessageSight REST API POST 메소드를 다음 IBM IoT MessageSight 구성 URI와 함께 사용하여 서버를 중지하고 재시작하십시오.

      http://<admin-endpoint-IP:port>/ima/v1/service/restart

      다음 스키마를 사용하여 POST 메소드의 페이로드(payload)에서 구성 데이터를 제공하십시오. Content-typeapplication/json으로 설정됩니다. 대문자와 큰따옴표가 표시된 대로 사용되는지 확인하십시오.
      {    
        "Service": "Server"
      }

다음에 수행할 작업

  1. 이 디버깅 단계를 완료한 후에는 IBM IoT MessageSight 서버에서 PluginDebugServer 오브젝트를 재설정하십시오. IBM IoT MessageSight REST API POST 메소드를 다음 IBM IoT MessageSight 구성 URI와 함께 사용하십시오.

    http://<admin-endpoint-IP:Port>/ima/v1/configuration/

    다음 스키마를 사용하여 POST 메소드의 페이로드(payload)에서 PluginDebugServer 오브젝트 구성 데이터를 제공하십시오. Content-typeapplication/json으로 설정됩니다. 대문자와 큰따옴표가 표시된 대로 사용되는지 확인하십시오.
    {    
      "PluginDebugServer": ""
    }
  2. IBM IoT MessageSight 서버에서 플러그인 서버 및 플러그인을 실행하여 다음 디버깅 단계로 이동하십시오. 추가 정보는 IBM IoT MessageSight 서버에서 플러그인 서버 및 플러그인을 실행하여 프로토콜 플러그인 디버깅의 내용을 참조하십시오.



피드백

시간소인 아이콘 마지막 업데이트 날짜: 2017년 9월 27일 수요일
http://pic.dhe.ibm.com/infocenter/ism/v1r0m0/com.ibm.ism.doc/Developing/devplug-ineclipse.html