Web Service 샘플 빌드

Web Service 샘플은 두 부분이 있습니다.

Web Service Host 샘플 빌드

이를 수행하지 않으려는 경우, 완성된 메시지 세트 프로젝트 및 메시지 플로우 프로젝트가 이 샘플과 함께 제공됩니다.

Web Service Host 샘플을 빌드하려면 다음을 수행하십시오.

  1. 메시지 세트를 작성하십시오. 이 메시지 세트는 웹 서비스 형식 메시지(XML) 및 레거시 형식(CWF) 모두에서 사용할 수 있습니다.
    1. Message Brokers Toolkit을 시작하십시오.
    2. 브로커 응용프로그램 개발 Perspective에 있는지 확인하십시오.
    3. 파일 > 새로 작성 > 메시지 세트 프로젝트를 누르십시오.
    4. 프로젝트 이름WSHOST_MSP1으로 설정한 후 다음을 누르십시오.
    5. 메시지 세트 이름WSHOST_MS1으로 설정하십시오.
    6. 네임스페이스 사용을 선택한 후 다음을 누르십시오.
    7. 사용자 정의 Wire 형식 이름XML Wire 형식 이름을 선택한 후 완료를 누르십시오.
    8. 컨텐츠를 저장하고 messageset.mset를 닫으십시오.
  2. C 헤더 파일을 들여옵니다. 이것은 레거시 응용프로그램의 입력 및 출력 메시지로 맵핑됩니다.
    1. 파일 > 가져오기 > 파일 시스템 > 다음을 누르십시오.
    2. WSHOST_LEGACY 프로젝트에서 legacyservice.h를 선택하기 위해 찾아보십시오.
    3. Into 폴더WSHOST_MSP1으로 설정한 후 완료를 누르십시오.
    4. C 헤더 파일에서 브로커 메시지 정의 파일을 작성하십시오.
      1. 자원 네비게이터에서 legacyservice.h를 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
      2. C 헤더 파일의 단일 선택 단추가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
      3. WSHOST_MSP1 프로젝트 내에서, legacyservice.h가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
      4. 메시지 세트 분할창에서 WSHOST_MSP1을 펼치고 WSHOST_MS1을 선택하십시오.
      5. 대상 네임스페이스 사용을 선택하고 http://www.brokersamplewshost.ibm.com을 URL에 입력한 후 다음을 누르십시오.
      6. 소스 구조 분할창에서 tagIA81CONF를 누르고 > 단추를 누른 후 모두 선택 > 완료를 누르십시오.
    5. 컨텐츠를 저장하고 legacyservice.mxsd를 닫으십시오.
  3. SOAP 메시지 정의를 빌드하십시오.
    1. 자원 네비게이터에서 메시지 세트 WSHOST_MS1을 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
    2. 단일 선택 단추인 IBM 제공 메시지를 누른 후 다음을 누르십시오.
    3. IBM 제공 메시지 분할창에서 메시지 ibm\soap\envelope\soapenv11.xsd를 선택한 후 다음을 누르십시오.
    4. WSHOST_MSP1을 펼치고 WSHOST_MS1을 선택한 후 다음을 누르십시오.
    5. 메시지를 작성하려는 전역 요소 선택에서 선택한 요소가 없는지 확인한 후 완료를 누르십시오.
    6. 컨텐츠를 저장하고 soapenv11.mxsd를 닫으십시오.
    7. 인벨로프가 자동으로 메시지로서 작성되었음에 유의하십시오.

      Message Brokers Toolkit 보기에 문제가 있으면 몇 개의 경고가 표시됩니다. 이는 주로 SOAP 메시지 정의에 대해 CWF를 정의할 경우 발생하며 이는 무시할 수 있습니다.

  4. 메시지 범주를 작성하십시오(WSDL 생성을 위한 필수조건).

    WSDL에서 모든 조작 이름은 닫혀 있는 포트 유형 내에서 고유해야 합니다. 그러므로 메시지 범주에 정의된 요청 및 응답 메시지는 달라야 합니다. 이를 규명하기 위해 두 개의 새 메시지가 메시지 세트에 정의됩니다. 하나는 웹 서비스 입력용이고, 다른 하나는 웹 서비스 출력용입니다. 이것은 C 헤더 파일에 있는 mxsd 파일에서 작성됩니다.

    1. legacyservice.mxsd를 여십시오.
    2. 아웃라인 보기에서 요소 및 속성을 마우스 오른쪽 단추로 누르고 전역 요소 추가를 누르십시오.
    3. 요소 이름을 IA81CONFIN으로 변경하고 Enter를 누르십시오.
    4. IA81CONFIN 요소의 유형 셀을 선택하십시오. 목록에서 (계속...)을 선택하십시오.
    5. tagIA81CONF를 선택하고 확인을 누르십시오.
    6. 아웃라인 보기에서 메시지를 마우스 오른쪽 단추로 누르고 전역 요소로부터 메시지 추가를 누르십시오.
    7. 풀다운 목록에서 tns:IA81CONFIN을 선택하고 Enter를 누르십시오.
    8. 아웃라인 보기에서 요소 및 속성을 마우스 오른쪽 단추로 누르고 전역 요소 추가를 누르십시오.
    9. 요소 이름을 IA81CONFOUT으로 변경하고 Enter를 누르십시오.
    10. IA81CONFOUT 요소의 유형 셀을 선택하십시오. 목록에서 (계속...)을 선택하십시오.
    11. tagIA81CONF를 선택하고 확인을 누르십시오.
    12. 아웃라인 보기에서 메시지를 마우스 오른쪽 단추로 누르고 전역 요소로부터 메시지 추가를 누르십시오.
    13. 풀다운 목록에서 tns:IA81CONFOUT을 선택하고 Enter를 누르십시오.
    14. 컨텐츠를 저장하고 legacyservice.mxsd를 닫으십시오.
    15. 파일 > 새로 작성 > 메시지 범주 파일을 누르십시오.
    16. 범주 종류wsdl로 설정하십시오.
    17. 범주 사용wsdl:requestresponse로 설정한 후 다음을 누르십시오.
    18. 메시지 세트 프로젝트 WSHOST_MSP1 내에서 메시지 세트 WSHOST_MS1을 선택하십시오.
    19. 파일 이름 필드에 cat1을 입력한 후 다음을 누르십시오.
    20. 맨 위 분할창에서 IA81CONFINIA81CONFOUT을 선택하십시오. (다중 선택사항을 만들려면 CTRL 키를 길게 누르십시오.)
    21. 맨 아래 분할창에서 IA81CONFOUT의 종류 셀의 값을 출력으로 설정하십시오. (값을 선택할 수 있는 메뉴를 표시하려면 이 셀을 누르십시오.)
    22. 맨 아래 분할창에서 IA81CONFIN을 선택한 후 완료를 누르십시오.
    새 메시지 범주 파일이 작성됩니다.
  5. WSDL을 생성하십시오.
    1. 파일 > 새로 작성 > WSDL 정의 > 다음을 누르십시오.
    2. 메시지 세트 프로젝트 WSHOST_MSP1 내에서 메시지 세트 WSHOST_MS1을 선택한 후 다음을 선택하십시오.
    3. WSHOST_MSP1을 선택한 후 새 폴더 작성을 누르십시오.
    4. wsdl을 폴더 이름으로 입력한 후 확인을 누르십시오.
    5. 단일을 선택했는지 확인하고 다음을 누르십시오.
    6. "WSDL 세부사항 지정" 분할창에서 양식문서로 설정했는지 확인한 후 다음을 누르십시오.
    7. "범주 선택" 분할창에서 모두 선택 > 다음을 누르십시오.
    8. 바인딩 분할창에서 SOAP/HTTP > 다음을 누르십시오.
    9. "서비스 등록 정보" 분할창에서 포트 주소http://localhost:7080/samplebrokerwshost로 설정한 후 완료를 누르십시오.
  6. 메시지 플로우를 작성하십시오. 플로우는 HTTP Request를 수신하고 MQ를 사용하여 레거시 응용프로그램을 호출한 다음, 레거시 응용프로그램의 응답 정보를 HTTP 요청자에게 라우트합니다.
    1. 파일 > 새로 작성 > 메시지 플로우 프로젝트를 누르십시오.
    2. 프로젝트 이름WSHOST_MFP1으로 설정한 후 다음을 누르십시오.
    3. "참조 프로젝트" 분할창에서 WSHOST_MSP1을 선택한 후 완료를 누르십시오.
    4. 자원 네비게이터에서 WSHOST_MFP1을 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 플로우를 누르십시오.
    5. 스키마WSHOST_MFP1으로 설정하십시오.
    6. 이름WSHOST_WSHOST1로 설정한 후 완료를 누르십시오.
    7. 팔레트(숨겨진 경우)를 표시한 후 메시지 플로우 캔버스에 있는 다음 노드에 넣으십시오.
      • 1 HTTP Input 노드
      • 3 Compute 노드
      • 2 MQOutput 노드
      • 1 MQGet 노드
      • 1 MQInput 노드
      • 1 HTTPReply 노드
    8. 팔레트에서 연결을 누른 후 다음 노드 및 터미널에 연결하십시오.
      • HTTPInput (out) - Compute (in)
      • Compute (out) - MQOutput (in)
      • MQOutput (out) - Compute1 (in)
      • Compute1 (out) - MQOutput1 (in)
      • MQInput (out) - MQGet (in)
      • MQGet (out) - Compute2 (in)
      • Compute2 (out) - HTTPReply (in)
  7. 나머지 노드의 이름을 바꾸는 것도 도움이 될 수 있습니다. 노드의 이름을 바꾸려면, 노드를 마우스 오른쪽 단추로 누른 후 이름 바꾸기를 누르십시오. 제시하는 이름은 다음과 같습니다.
  8. HTTPInput 노드를 사용자 정의하십시오.
    1. HTTPInput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택한 후 URL 선택자/samplebrokerwshost로 설정하십시오.
    3. 디폴트를 선택하십시오.
      • 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
      • 메시지 세트의 경우, 드롭다운 목록에서 WSHOST_MS1을 선택하십시오.
      • 메시지 유형의 경우, Envelope를 입력하십시오.
      • 메시지 형식의 경우, 드롭다운 목록에서 XML1을 선택하십시오.
    4. 확인을 누르십시오.
  9. Compute 노드를 사용자 정의하십시오.
    1. Compute 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
    2. 이 모듈에 대한 BEGIN문과 END문 사이에 다음 ESQL을 코딩하십시오. 컨텐츠 보조(Ctrl+space)를 사용하여 키워드를 선택하십시오. 처음 컨텐츠 보조를 사용하여 SOAP 본문 요소와 기타 IA81CONFIN 요소를 선택할 경우 처음 두 행에 있는 주석과 유사한 DECLARE NAMESPACE문이 생성되어야 합니다. 이 코드를 복사하여 붙여넣는 경우, DECLARE NAMESPACE문을 주석 해제했는지 확인하십시오.
      --DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
      --DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';CALL CopyMessageHeaders();
      
      -- Output is MQ, so remove HTTP headers
      	SET OutputRoot.HTTPInputHeader = null;
      
      -- Output is legacy, so set wire format and message name
      	SET OutputRoot.Properties.MessageType = 'msg_tagIA81CONF';
      	SET OutputRoot.Properties.MessageFormat = 'CWF1';
      
      -- Add an MQMD
      	CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
      
      -- Build message to be sent to legacy
      	SET OutputRoot.MRM.MessageId
      	    = InputBody.tns:Body.ns:IA81CONFIN.MessageId;
      	SET OutputRoot.MRM.OrderNumber
          	= InputBody.tns:Body.ns:IA81CONFIN.OrderNumber;
      	SET OutputRoot.MRM.ItemReference
          	= InputBody.tns:Body.ns:IA81CONFIN.ItemReference;
      	SET OutputRoot.MRM.ItemQuantity
          	= InputBody.tns:Body.ns:IA81CONFIN.ItemQuantity;
      	SET OutputRoot.MRM.CustomerNumber
          	= InputBody.tns:Body.ns:IA81CONFIN.CustomerNumber;
      	SET OutputRoot.MRM.DeliveryRef 
          	= InputBody.tns:Body.ns:IA81CONFIN.DeliveryRef;
      	SET OutputRoot.MRM.Confirm 
          	= InputBody.tns:Body.ns:IA81CONFIN.Confirm;
      	SET OutputRoot.MRM.filler1 
          	= InputBody.tns:Body.ns:IA81CONFIN.filler1;
      
      	RETURN TRUE;
  10. MQOutput (레거시에 대한 MQOutput) 노드를 사용자 정의하십시오.
    1. MQOutput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 브로커의 다른 WebSphere MQ 큐 관리자에서 레거시 응용프로그램을 실행하려면 기본을 선택하고 큐 관리자 이름을 레거시 응용프로그램의 큐 관리자 이름으로 설정하십시오. 그렇지 않으면, 공백으로 두십시오.
    3. 큐 이름WSHOST1_OUT1로 설정하십시오.
    4. 고급을 선택하고 트랜잭션 모드로 설정하십시오.
    5. 메시지 컨텍스트디폴트로 설정하십시오.
    6. 요청을 선택하고 요청의 선택란을 선택하십시오.
    7. 리플라이-투 큐WSHOST1_IN1로 설정한 후 확인을 누르십시오.
  11. Compute1 노드를 사용자 정의하십시오.
    1. Compute1 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
    2. 이 모듈에 대한 BEGIN문과 END문 사이에 다음 ESQL을 코딩하십시오. 컨텐츠 보조(Ctrl+space)를 사용하여 키워드를 선택하십시오. 처음 컨텐츠 보조를 사용하여 SOAP 본문 요소를 선택할 경우 첫 행에 있는 주석과 유사한 DECLARE NAMESPACE문이 생성되어야 합니다.
      --DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
      --DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
      
      -- The output message built in this node stores the HTTP context.
      -- Any format may be suitable, but we are using a
      -- self-defined field in a SOAP Header to do this
      -- So the wire format is XML
      -- Create the target message set properties
      
      	SET OutputRoot.Properties.MessageSet = InputRoot.Properties.MessageSet;
      	SET OutputRoot.Properties.MessageType = 'Envelope';
      	SET OutputRoot.Properties.MessageFormat = 'XML1';
      
      -- Create the MQMD and set the CorrelId
      -- The CorrelId needs to be set to the MsgId of the message sent
      -- to the legacy application.  When the reply from the legacy
      -- application is received, we will MQGet from the store
      -- queue with correlid equal to the correlid of the legacy reply
      
      	SET OutputRoot.MQMD.CorrelId
      = InputLocalEnvironment.WrittenDestination.MQ.DestinationData.msgId;
      
      -- Build message to store HTTP context
      
      	SET OutputRoot.MRM.tns:Header.HTTP.RequestIdentifier 
          = InputLocalEnvironment.Destination.HTTP.RequestIdentifier;
      
      	RETURN TRUE;
  12. MQOutput1(HTTP 상태를 저장하는 MQOutput) 노드를 사용자 정의하십시오.
    1. MQOutput1 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택하고 큐 이름WSHOST1_STATE1으로 설정하십시오.
    3. 고급을 선택하고 트랜잭션 모드로 설정하십시오.
    4. 메시지 컨텍스트디폴트로 설정하십시오.
    5. 확인을 누르십시오.
  13. MQInput (레거시로부터의 MQInput) 노드를 사용자 정의하십시오.
    1. MQInput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택하고 큐 이름WSHOST1_IN1로 설정하십시오.
    3. 디폴트를 선택하십시오.
      • 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
      • 메시지 세트의 경우, 드롭다운 목록에서 WSHOST_MS1을 선택하십시오.
      • 메시지 유형으로 msg_tagIA81CONF를 입력하십시오.
      • 메시지 형식의 경우, 드롭다운 목록에서 CWF1을 선택하십시오.
    4. 확인을 누르십시오.
  14. MQGet (HTTP 상태를 저장하는 MQGet) 노드를 사용자 정의하십시오.
    1. MQGet 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택하고 큐 이름WSHOST1_STATE1으로 설정하십시오.
    3. 디폴트를 선택하십시오.
      • 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
      • 메시지 세트의 경우, 드롭다운 목록에서 WSHOST_MS1을 선택하십시오.
      • 메시지 유형의 경우, Envelope를 입력하십시오.
      • 메시지 형식의 경우, 드롭다운 목록에서 XML1을 선택하십시오.
    4. 고급을 선택하십시오.
      • 생성 모드에 대해 드롭다운 목록에서 Message 및 LocalEnvironment를 선택하십시오.
      • 메시지 복사에 대해 드롭다운 목록에서 전체 메시지 복사를 선택하십시오.
    5. 요청을 선택하고 상관 ID 가져오기의 선택란을 선택하십시오.
    6. 결과를 선택하고 출력 데이터 위치OutputLocalEnvironment로 설정하십시오.
    7. 확인을 누르십시오.
  15. Compute2 노드를 사용자 정의하십시오.
    1. Compute2 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택하고 처리 모드LocalEnvironment 및 Message로 설정하십시오.
    3. 확인을 누르십시오(HTTP 컨텍스트가 HTTPReply 노드로 전달됨).
    4. 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 선택하십시오.
    5. 이 모듈에 대한 BEGIN문과 END문 사이에 다음 ESQL을 코딩하십시오.
      --DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
      --DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
      
      -- Input is CWF, output is SOAP/XML
      	SET OutputRoot.Properties.MessageSet = InputRoot.Properties.MessageSet;
      	SET OutputRoot.Properties.MessageType = 'Envelope';
      	SET OutputRoot.Properties.MessageFormat = 'XML1';
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFOUT = InputRoot.MRM;
      
      -- Set the http reply identifier
      	SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier =
       CAST(InputLocalEnvironment.MRM.tns:Header.HTTP.RequestIdentifier AS BLOB);
      	
      	RETURN TRUE;
  16. 컨텐츠를 저장하고 WSHOST_WSHOST1.esql을 닫으십시오.
  17. 컨텐츠를 저장하고 WSHOST_WSHOST1.msgflow를 닫으십시오.
  18. 브로커의 다른 WebSphere MQ 큐 관리자에서 레거시 응용프로그램을 실행하려면 레거시 응용프로그램의 큐 관리자에 레거시 응용프로그램의 입력 큐를 정의해야 합니다. 적절한 WebSphere MQ 유틸리티를 사용하여 다음의 큐 정의를 입력하십시오.

    DEFINE QLOCAL(WSHOST1_OUT1) REPLACE

Web Service Client 샘플 빌드

이를 수행하지 않으려는 경우, 완성된 메시지 세트 프로젝트 및 메시지 플로우 프로젝트가 이 샘플과 함께 제공됩니다.

Web Service Client 샘플을 빌드하려면 다음을 수행하십시오.

  1. 메시지 세트를 작성하십시오. 이 메시지 세트는 웹 서비스 형식 메시지(XML) 및 레거시 형식(CWF) 모두에서 사용할 수 있습니다.
    1. Message Brokers Toolkit을 시작하십시오.
    2. 브로커 응용프로그램 개발 Perspective에 있는지 확인하십시오.
    3. 파일 > 새로 작성 > 메시지 세트 프로젝트를 누르십시오.
    4. 프로젝트 이름WSCLIENT_MSP1으로 설정한 후 다음을 누르십시오.
    5. 메시지 세트 이름WSCLIENT_MS1으로 설정하십시오.
    6. 네임스페이스 사용을 선택한 후 다음을 누르십시오.
    7. 사용자 정의 Wire 형식 이름XML Wire 형식 이름을 선택한 후 완료를 누르십시오.
    8. 컨텐츠를 저장하고 messageset.mset를 닫으십시오.
  2. C 헤더 파일을 들여옵니다. 이것은 레거시 응용프로그램의 입력 및 출력 메시지 정의를 제공합니다.
    1. WSHOST_LEGACY 프로젝트에서 legacyservice.h 파일을 복사하고 WSCLIENT_MSP1 프로젝트에 붙여넣으십시오.
    2. C 헤더 파일에서 브로커 메시지 정의 파일을 작성하십시오.
      1. 자원 네비게이터에서 legacyservice.h를 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
      2. C 헤더 파일의 단일 선택 단추가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
      3. WSCLIENT_MSP1 프로젝트 내에서 legacyservice.h가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
      4. 메시지 세트 분할창에서 WSCLIENT_MSP1을 펼치고 WSCLIENT_MS1을 선택한 후 다음을 누르십시오.
      5. 소스 구조 분할창에서 tagIA81BUY, > 단추, tagIA81CONF, > 단추를 차례로 누른 후 모두 선택 > 완료를 누르십시오.
    3. 컨텐츠를 저장하고 legacyservice.mxsd를 닫으십시오.
  3. 웹 서비스에 대한 WSDL을 들여오십시오.
    1. 파일 > 가져오기 > 파일 시스템 > 다음을 누르십시오.
    2. WSHOST_MSP1 프로젝트에서 wsdl 디렉토리를 선택하기 위해 찾아보십시오.
    3. Into 폴더WSCLIENT_MSP1으로 설정한 후 완료를 누르십시오.
    4. WSDL에서 브로커 메시지 정의 파일을 작성하십시오.
      1. 자원 네비게이터에서 WSCLIENT_MSP1 프로젝트의 wsdl 디렉토리의 WSHOST_MS1Service.wsdl을 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
      2. WSDL 파일의 단일 선택 단추가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
      3. WSCLIENT_MSP1 프로젝트 내에서 WSHOST_MS1Service.wsdl이 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
      4. 메시지 세트 분할창에서 WSCLIENT_MSP1을 펼치고 WSCLIENT_MS1을 선택하십시오.
      5. 네임스페이스 분할창에서 http:www.brokersamplewshost.ibm.com 네임스페이스의 네임스페이스 접두부를 wshost로 설정한 후 다음을 누르십시오.
      6. 생성될 파일 목록이 표시됩니다. 완료를 누르십시오.
  4. 메시지 플로우를 작성하십시오. 이 플로우는 WebSphere MQ 메시지를 입력으로 사용하고 서비스 요청을 빌드하며 HTTP를 사용하여 요청을 송신합니다. HTTP 응답이 수신되고 WebSphere MQ 응답 메시지가 송신됩니다.
    1. 파일 > 새로 작성 > 메시지 플로우 프로젝트를 누르십시오.
    2. 프로젝트 이름WSCLIENT_MFP1으로 설정한 후 다음을 누르십시오.
    3. "참조 프로젝트" 분할창에서 WSCLIENT_MSP1을 선택한 후 완료를 누르십시오.
    4. 자원 네비게이터에서 WSCLIENT_MFP1을 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 플로우를 누르십시오.
    5. 스키마WSCLIENT_MFP1으로 설정하십시오.
    6. 이름WSCLIENT_WSCLIENT1으로 설정한 후 완료를 누르십시오.
    7. 팔레트(숨겨진 경우)를 표시한 후 메시지 플로우 캔버스에 있는 다음 노드에 넣으십시오.
      • 1 MQInput 노드
      • 2 Compute 노드
      • 1 MQReply 노드
      • 1 HTTPRequest 노드
    8. 팔레트에서 연결을 누른 후 다음 노드 및 터미널에 연결하십시오.
      • MQInput (out) - Compute (in)
      • Compute (out) - HTTPRequest (in)
      • HTTPRequest (out) - Compute1 (in)
      • Compute1 (out) - MQreply (in)
  5. MQInput (레거시로부터의 MQInput) 노드를 사용자 정의하십시오.
    1. MQInput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택하고 큐 이름WSCLIENT1_IN1으로 설정하십시오.
    3. 디폴트를 선택하십시오.
      • 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
      • 메시지 세트의 경우, 드롭다운 목록에서 WSCLIENT_MS1을 선택하십시오.
      • 메시지 유형의 경우, 드롭다운 목록에서 msg_tagIA81BUY를 선택하십시오.
      • 메시지 형식의 경우, 드롭다운 목록에서 CWF1을 선택하십시오.
    4. 확인을 누르십시오.
  6. Compute 노드를 사용자 정의하십시오.
    1. Compute 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
    2. 이 모듈에 대한 BEGIN문과 END문 사이에 다음 ESQL을 코딩하십시오. 컨텐츠 보조(Ctrl+space)를 사용하여 키워드를 선택하십시오. 처음 컨텐츠 보조를 사용하여 SOAP 본문 요소와 기타 IA81CONFIN 요소를 선택할 경우 처음 두 행에 있는 주석과 유사한 DECLARE NAMESPACE문이 생성되어야 합니다. 이 코드를 복사하여 붙여넣는 경우, DECLARE NAMESPACE문을 주석 해제했는지 확인하십시오.
      --DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
      --DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
      
      CALL CopyMessageHeaders();
      
      -- Save the MQMD; sending to HTTP later in the flow destroys it
      	SET Environment.MQMD = InputRoot.MQMD;
          
      -- Input is CWF, Output is SOAP, so set wire format and message name
      	SET OutputRoot.Properties.MessageType = 'Envelope';
      	SET OutputRoot.Properties.MessageFormat = 'XML1';
      
      -- Build message to be sent to web service
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.MessageId = 'IA81CONF';
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.OrderNumber = InputBody.OrderNumber;
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.ItemReference = InputBody.ItemReference;
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.ItemQuantity = InputBody.ItemQuantity;
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.CustomerNumber = InputBody.CustomerNumber;
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.DeliveryRef = ' ';
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.Confirm = ' ';
      	SET OutputRoot.MRM.tns:Body.ns:IA81CONFIN.filler1 = ' ';
      
      	RETURN TRUE;
  7. HTTPRequest 노드를 사용자 정의하십시오.
    1. HTTPRequest 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
    2. 기본을 선택하고 웹 서비스 URLhttp://localhost:7080/samplebrokerwshost로 설정하십시오. 웹 서비스를 호스트하는 브로커가 해당 브로커에 대해 다른 시스템에 있거나 디폴트가 아닌 포트 번호를 사용하는 경우 또는 둘 다인 경우, 이 URL을 적절하게 수정해야 합니다.
    3. 디폴트를 선택하십시오.
      • 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
      • 메시지 세트의 경우, 드롭다운 목록에서 WSCLIENT_MS1을 선택하십시오.
      • 메시지 유형의 경우, 드롭다운 목록에서 Envelope를 선택하십시오.
      • 메시지 형식의 경우, 드롭다운 목록에서 XML1을 선택하십시오.
    4. 확인을 누르십시오.
  8. Compute1 노드를 사용자 정의하십시오.
    1. Compute1 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
    2. 이 모듈에 대한 BEGIN문과 END문 사이에 다음 ESQL을 코딩하십시오. 컨텐츠 보조(Ctrl+space)를 사용하여 키워드를 선택하십시오. 처음 컨텐츠 보조를 사용하여 SOAP 본문 요소를 선택할 경우 첫 행에 있는 주석과 유사한 DECLARE NAMESPACE문이 생성되어야 합니다.
      --DECLARE tns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
      --DECLARE ns NAMESPACE 'http://www.brokersamplewshost.ibm.com';
      
      CALL CopyMessageHeaders();
      
      -- Output is MQ, so remove HTTP headers
          SET OutputRoot.HTTPResponseHeader = NULL;
              
      -- Output is CWF, so set the target message set properties
      
      	SET OutputRoot.Properties.MessageType = 'msg_tagIA81CONF';
      	SET OutputRoot.Properties.MessageFormat = 'CWF1';
      
      -- Create an MQMD and restore it to the saved values
      
      	CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
          SET OutputRoot.MQMD = Environment.MQMD;
      
      -- Build message to be sent
      
      	SET OutputRoot.MRM.MessageId - InputBody.tns:Body.ns:IA81CONFOUT.MessageId;
      	SET OutputRoot.MRM.OrderNumber = InputBody.tns:Body.ns:IA81CONFOUT.OrderNumber;
      	SET OutputRoot.MRM.ItemReference = InputBody.tns:Body.ns:IA81CONFOUT.ItemReference;
      	SET OutputRoot.MRM.ItemQuantity = InputBody.tns:Body.ns:IA81CONFOUT.ItemQuantity;
      	SET OutputRoot.MRM.CustomerNumber = InputBody.tns:Body.ns:IA81CONFOUT.CustomerNumber;
      	SET OutputRoot.MRM.DeliveryRef = InputBody.tns:Body.ns:IA81CONFOUT.DeliveryRef;
      	SET OutputRoot.MRM.Confirm = InputBody.tns:Body.ns:IA81CONFOUT.Confirm;						
      	SET OutputRoot.MRM.filler1 = InputBody.tns:Body.ns:IA81CONFOUT.filler1;	
      
      	RETURN TRUE;
  9. MQReply 노드를 사용자 정의하십시오.
    1. 완료된 사용자 정의가 없습니다.
  10. 컨텐츠를 저장하고 WSCLIENT_WSCLIENT1.esql을 닫으십시오.
  11. 컨텐츠를 저장하고 WSCLIENT_WSCLIENT1.msgflow를 닫으십시오.

기본 페이지 아이콘   샘플 홈으로 돌아가기