Web Service 샘플 빌드
Web Service 샘플은 두 부분이 있습니다.
- Web Service Host 샘플
- Web Service Client 샘플
Web Service Host 샘플 빌드
이를 수행하지 않으려는 경우, 완성된 메시지 세트 프로젝트 및 메시지 플로우 프로젝트가 이 샘플과 함께 제공됩니다.
Web Service Host 샘플을 빌드하려면 다음을 수행하십시오.
- 메시지 세트를 작성하십시오. 이 메시지 세트는 웹 서비스 형식 메시지(XML) 및 레거시 형식(CWF) 모두에서 사용할 수 있습니다.
- Message Brokers Toolkit을 시작하십시오.
- 브로커 응용프로그램 개발 Perspective에 있는지 확인하십시오.
- 파일 > 새로 작성 > 메시지 세트 프로젝트를 누르십시오.
- 프로젝트 이름을 WSHOST_MSP1으로 설정한 후 다음을 누르십시오.
- 메시지 세트 이름을 WSHOST_MS1으로 설정하십시오.
- 네임스페이스 사용을 선택한 후 다음을 누르십시오.
- 사용자 정의 Wire 형식 이름 및 XML Wire 형식 이름을 선택한 후 완료를 누르십시오.
- 컨텐츠를 저장하고 messageset.mset를 닫으십시오.
- C 헤더 파일을 들여옵니다. 이것은 레거시 응용프로그램의 입력 및 출력 메시지로 맵핑됩니다.
- 파일 > 가져오기 > 파일 시스템 > 다음을 누르십시오.
- WSHOST_LEGACY 프로젝트에서 legacyservice.h를 선택하기 위해 찾아보십시오.
- Into 폴더를 WSHOST_MSP1으로 설정한 후 완료를 누르십시오.
- C 헤더 파일에서 브로커 메시지 정의 파일을 작성하십시오.
- 자원 네비게이터에서 legacyservice.h를 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
- C 헤더 파일의 단일 선택 단추가 미리 선택되어 있어야 합니다. 그렇지 않으면,
이를 선택한 후 다음을 누르십시오.
- WSHOST_MSP1 프로젝트 내에서, legacyservice.h가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
- 메시지 세트 분할창에서 WSHOST_MSP1을 펼치고
WSHOST_MS1을 선택하십시오.
- 대상 네임스페이스 사용을 선택하고 http://www.brokersamplewshost.ibm.com을
URL에 입력한 후 다음을 누르십시오.
- 소스 구조 분할창에서 tagIA81CONF를 누르고 > 단추를 누른 후 모두 선택 > 완료를 누르십시오.
- 컨텐츠를 저장하고 legacyservice.mxsd를 닫으십시오.
- SOAP 메시지 정의를 빌드하십시오.
- 자원 네비게이터에서 메시지 세트 WSHOST_MS1을 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
- 단일 선택 단추인 IBM 제공 메시지를 누른 후 다음을 누르십시오.
- IBM 제공 메시지 분할창에서 메시지 ibm\soap\envelope\soapenv11.xsd를 선택한 후 다음을 누르십시오.
- WSHOST_MSP1을 펼치고 WSHOST_MS1을 선택한 후 다음을 누르십시오.
- 메시지를 작성하려는 전역 요소 선택에서 선택한 요소가 없는지 확인한 후 완료를 누르십시오.
- 컨텐츠를 저장하고 soapenv11.mxsd를 닫으십시오.
- 인벨로프가 자동으로 메시지로서 작성되었음에 유의하십시오.
Message Brokers Toolkit 보기에 문제가 있으면 몇 개의 경고가 표시됩니다. 이는 주로 SOAP 메시지 정의에 대해 CWF를 정의할 경우 발생하며 이는 무시할 수 있습니다.
- 메시지 범주를 작성하십시오(WSDL 생성을 위한 필수조건).
WSDL에서 모든 조작 이름은 닫혀 있는 포트 유형 내에서 고유해야 합니다.
그러므로 메시지 범주에 정의된 요청 및 응답 메시지는 달라야 합니다. 이를 규명하기 위해 두 개의 새 메시지가 메시지 세트에 정의됩니다. 하나는 웹 서비스 입력용이고, 다른 하나는 웹 서비스 출력용입니다.
이것은 C 헤더 파일에 있는 mxsd 파일에서 작성됩니다.
- legacyservice.mxsd를 여십시오.
- 아웃라인 보기에서 요소 및 속성을 마우스 오른쪽 단추로 누르고 전역 요소 추가를 누르십시오.
- 요소 이름을 IA81CONFIN으로 변경하고 Enter를 누르십시오.
- IA81CONFIN 요소의 유형 셀을 선택하십시오. 목록에서 (계속...)을 선택하십시오.
- tagIA81CONF를 선택하고 확인을 누르십시오.
- 아웃라인 보기에서 메시지를 마우스 오른쪽 단추로 누르고 전역 요소로부터 메시지 추가를 누르십시오.
- 풀다운 목록에서 tns:IA81CONFIN을 선택하고 Enter를 누르십시오.
- 아웃라인 보기에서 요소 및 속성을 마우스 오른쪽 단추로 누르고 전역 요소 추가를 누르십시오.
- 요소 이름을 IA81CONFOUT으로 변경하고 Enter를 누르십시오.
- IA81CONFOUT 요소의 유형 셀을 선택하십시오. 목록에서 (계속...)을 선택하십시오.
- tagIA81CONF를 선택하고 확인을 누르십시오.
- 아웃라인 보기에서 메시지를 마우스 오른쪽 단추로 누르고 전역 요소로부터 메시지 추가를 누르십시오.
- 풀다운 목록에서 tns:IA81CONFOUT을 선택하고 Enter를 누르십시오.
- 컨텐츠를 저장하고 legacyservice.mxsd를 닫으십시오.
- 파일 > 새로 작성 > 메시지 범주 파일을 누르십시오.
- 범주 종류를 wsdl로 설정하십시오.
- 범주 사용을 wsdl:requestresponse로 설정한 후 다음을 누르십시오.
- 메시지 세트 프로젝트 WSHOST_MSP1 내에서 메시지 세트 WSHOST_MS1을 선택하십시오.
- 파일 이름 필드에 cat1을 입력한 후 다음을 누르십시오.
- 맨 위 분할창에서 IA81CONFIN 및 IA81CONFOUT을
선택하십시오. (다중 선택사항을 만들려면 CTRL 키를 길게 누르십시오.)
- 맨 아래 분할창에서 IA81CONFOUT의 종류 셀의 값을 출력으로 설정하십시오. (값을 선택할 수 있는 메뉴를 표시하려면 이 셀을 누르십시오.)
- 맨 아래 분할창에서 IA81CONFIN을 선택한 후 완료를 누르십시오.
새 메시지 범주 파일이 작성됩니다.
- WSDL을 생성하십시오.
- 파일 > 새로 작성 > WSDL 정의 > 다음을 누르십시오.
- 메시지 세트 프로젝트 WSHOST_MSP1 내에서 메시지 세트 WSHOST_MS1을 선택한 후
다음을 선택하십시오.
- WSHOST_MSP1을 선택한 후 새 폴더 작성을 누르십시오.
- wsdl을 폴더 이름으로 입력한 후 확인을 누르십시오.
- 단일을 선택했는지 확인하고 다음을 누르십시오.
- "WSDL 세부사항 지정" 분할창에서 양식을
문서로 설정했는지 확인한 후 다음을 누르십시오.
- "범주 선택" 분할창에서 모두 선택 > 다음을 누르십시오.
- 바인딩 분할창에서 SOAP/HTTP > 다음을 누르십시오.
- "서비스 등록 정보" 분할창에서 포트 주소를
http://localhost:7080/samplebrokerwshost로 설정한 후 완료를 누르십시오.
- 메시지 플로우를 작성하십시오. 플로우는 HTTP Request를 수신하고 MQ를 사용하여 레거시 응용프로그램을 호출한 다음,
레거시 응용프로그램의 응답 정보를 HTTP 요청자에게 라우트합니다.
- 파일 > 새로 작성 > 메시지 플로우 프로젝트를 누르십시오.
- 프로젝트 이름을 WSHOST_MFP1으로 설정한 후 다음을 누르십시오.
- "참조 프로젝트" 분할창에서 WSHOST_MSP1을 선택한 후 완료를 누르십시오.
- 자원 네비게이터에서 WSHOST_MFP1을 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 플로우를 누르십시오.
- 스키마를 WSHOST_MFP1으로 설정하십시오.
- 이름을 WSHOST_WSHOST1로 설정한 후
완료를 누르십시오.
- 팔레트(숨겨진 경우)를 표시한 후 메시지 플로우 캔버스에 있는 다음 노드에 넣으십시오.
- 1 HTTP Input 노드
- 3 Compute 노드
- 2 MQOutput 노드
- 1 MQGet 노드
- 1 MQInput 노드
- 1 HTTPReply 노드
- 팔레트에서 연결을 누른 후 다음 노드 및 터미널에 연결하십시오.
- 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)
- 나머지 노드의 이름을 바꾸는 것도 도움이 될 수 있습니다. 노드의 이름을 바꾸려면, 노드를 마우스 오른쪽 단추로 누른 후
이름 바꾸기를 누르십시오. 제시하는 이름은 다음과 같습니다.
- MQOutput -> MQOutput to legacy
- MQOutput1 -> MQOutput store HTTP state
- MQInput -> MQInput from legacy
- MQGet -> MQGet stored HTTP state
- HTTPInput 노드를 사용자 정의하십시오.
- HTTPInput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택한 후 URL 선택자를 /samplebrokerwshost로 설정하십시오.
- 디폴트를 선택하십시오.
- 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
- 메시지 세트의 경우, 드롭다운 목록에서 WSHOST_MS1을 선택하십시오.
- 메시지 유형의 경우, Envelope를 입력하십시오.
- 메시지 형식의 경우, 드롭다운 목록에서 XML1을 선택하십시오.
- 확인을 누르십시오.
- Compute 노드를 사용자 정의하십시오.
- Compute 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
- 이 모듈에 대한 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;
- MQOutput (레거시에 대한 MQOutput) 노드를 사용자 정의하십시오.
- MQOutput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 브로커의 다른 WebSphere MQ 큐 관리자에서 레거시 응용프로그램을 실행하려면
기본을 선택하고
큐 관리자 이름을 레거시 응용프로그램의
큐 관리자 이름으로 설정하십시오. 그렇지 않으면, 공백으로 두십시오.
- 큐 이름을 WSHOST1_OUT1로 설정하십시오.
- 고급을 선택하고 트랜잭션 모드를
예로 설정하십시오.
- 메시지 컨텍스트를 디폴트로 설정하십시오.
- 요청을 선택하고 요청의 선택란을 선택하십시오.
- 리플라이-투 큐를 WSHOST1_IN1로 설정한 후 확인을 누르십시오.
- Compute1 노드를 사용자 정의하십시오.
- Compute1 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
- 이 모듈에 대한 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;
- MQOutput1(HTTP 상태를 저장하는 MQOutput) 노드를 사용자 정의하십시오.
- MQOutput1 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택하고 큐 이름을
WSHOST1_STATE1으로 설정하십시오.
- 고급을 선택하고 트랜잭션 모드를
예로 설정하십시오.
- 메시지 컨텍스트를 디폴트로 설정하십시오.
- 확인을 누르십시오.
- MQInput (레거시로부터의 MQInput) 노드를 사용자 정의하십시오.
- MQInput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택하고 큐 이름을 WSHOST1_IN1로 설정하십시오.
- 디폴트를 선택하십시오.
- 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
- 메시지 세트의 경우, 드롭다운 목록에서 WSHOST_MS1을 선택하십시오.
- 메시지 유형으로 msg_tagIA81CONF를 입력하십시오.
- 메시지 형식의 경우, 드롭다운 목록에서 CWF1을 선택하십시오.
- 확인을 누르십시오.
- MQGet (HTTP 상태를 저장하는 MQGet) 노드를 사용자 정의하십시오.
- MQGet 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택하고 큐 이름을
WSHOST1_STATE1으로 설정하십시오.
- 디폴트를 선택하십시오.
- 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
- 메시지 세트의 경우, 드롭다운 목록에서 WSHOST_MS1을 선택하십시오.
- 메시지 유형의 경우, Envelope를 입력하십시오.
- 메시지 형식의 경우, 드롭다운 목록에서 XML1을 선택하십시오.
- 고급을 선택하십시오.
- 생성 모드에 대해 드롭다운 목록에서 Message 및 LocalEnvironment를 선택하십시오.
- 메시지 복사에 대해 드롭다운 목록에서 전체 메시지 복사를 선택하십시오.
- 요청을 선택하고 상관 ID 가져오기의 선택란을 선택하십시오.
- 결과를 선택하고 출력 데이터 위치를 OutputLocalEnvironment로 설정하십시오.
- 확인을 누르십시오.
- Compute2 노드를 사용자 정의하십시오.
- Compute2 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택하고 처리 모드를 LocalEnvironment 및 Message로 설정하십시오.
- 확인을 누르십시오(HTTP 컨텍스트가 HTTPReply 노드로 전달됨).
- 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 선택하십시오.
- 이 모듈에 대한 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;
- 컨텐츠를 저장하고 WSHOST_WSHOST1.esql을 닫으십시오.
- 컨텐츠를 저장하고 WSHOST_WSHOST1.msgflow를 닫으십시오.
- 브로커의 다른 WebSphere MQ 큐 관리자에서 레거시 응용프로그램을 실행하려면
레거시 응용프로그램의 큐 관리자에 레거시 응용프로그램의 입력 큐를 정의해야 합니다. 적절한 WebSphere MQ 유틸리티를 사용하여 다음의 큐 정의를 입력하십시오.
DEFINE QLOCAL(WSHOST1_OUT1) REPLACE
Web Service Client 샘플 빌드
이를 수행하지 않으려는 경우, 완성된 메시지 세트 프로젝트 및 메시지 플로우 프로젝트가 이 샘플과 함께 제공됩니다.
Web Service Client 샘플을 빌드하려면 다음을 수행하십시오.
- 메시지 세트를 작성하십시오. 이 메시지 세트는 웹 서비스 형식 메시지(XML) 및 레거시 형식(CWF) 모두에서 사용할 수 있습니다.
- Message Brokers Toolkit을 시작하십시오.
- 브로커 응용프로그램 개발 Perspective에 있는지 확인하십시오.
- 파일 > 새로 작성 > 메시지 세트 프로젝트를 누르십시오.
- 프로젝트 이름을 WSCLIENT_MSP1으로 설정한 후
다음을 누르십시오.
- 메시지 세트 이름을 WSCLIENT_MS1으로 설정하십시오.
- 네임스페이스 사용을 선택한 후 다음을 누르십시오.
- 사용자 정의 Wire 형식 이름 및 XML Wire 형식 이름을 선택한 후 완료를 누르십시오.
- 컨텐츠를 저장하고 messageset.mset를 닫으십시오.
- C 헤더 파일을 들여옵니다. 이것은 레거시 응용프로그램의 입력 및 출력 메시지 정의를 제공합니다.
- WSHOST_LEGACY 프로젝트에서 legacyservice.h 파일을 복사하고
WSCLIENT_MSP1 프로젝트에 붙여넣으십시오.
- C 헤더 파일에서 브로커 메시지 정의 파일을 작성하십시오.
- 자원 네비게이터에서 legacyservice.h를 마우스 오른쪽 단추로 누른 후 새로 작성 > 메시지 정의 파일을 누르십시오.
- C 헤더 파일의 단일 선택 단추가 미리 선택되어 있어야 합니다. 그렇지 않으면,
이를 선택한 후 다음을 누르십시오.
- WSCLIENT_MSP1 프로젝트 내에서 legacyservice.h가 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
- 메시지 세트 분할창에서 WSCLIENT_MSP1을 펼치고
WSCLIENT_MS1을 선택한 후 다음을 누르십시오.
- 소스 구조 분할창에서
tagIA81BUY,
> 단추,
tagIA81CONF,
> 단추를 차례로 누른 후
모두 선택 > 완료를 누르십시오.
- 컨텐츠를 저장하고 legacyservice.mxsd를 닫으십시오.
- 웹 서비스에 대한 WSDL을 들여오십시오.
- 파일 > 가져오기 > 파일 시스템 > 다음을 누르십시오.
- WSHOST_MSP1 프로젝트에서 wsdl 디렉토리를
선택하기 위해 찾아보십시오.
- Into 폴더를 WSCLIENT_MSP1으로 설정한 후
완료를 누르십시오.
- WSDL에서 브로커 메시지 정의 파일을 작성하십시오.
- 자원 네비게이터에서 WSCLIENT_MSP1 프로젝트의
wsdl 디렉토리의
WSHOST_MS1Service.wsdl을 마우스 오른쪽 단추로 누른 후
새로 작성 > 메시지 정의 파일을 누르십시오.
- WSDL 파일의 단일 선택 단추가 미리 선택되어 있어야 합니다. 그렇지 않으면,
이를 선택한 후 다음을 누르십시오.
- WSCLIENT_MSP1 프로젝트 내에서 WSHOST_MS1Service.wsdl이 미리 선택되어 있어야 합니다. 그렇지 않으면, 이를 선택한 후 다음을 누르십시오.
- 메시지 세트 분할창에서 WSCLIENT_MSP1을 펼치고
WSCLIENT_MS1을 선택하십시오.
- 네임스페이스 분할창에서 http:www.brokersamplewshost.ibm.com 네임스페이스의 네임스페이스 접두부를
wshost로 설정한 후 다음을 누르십시오.
- 생성될 파일 목록이 표시됩니다. 완료를 누르십시오.
- 메시지 플로우를 작성하십시오. 이 플로우는 WebSphere MQ 메시지를 입력으로 사용하고
서비스 요청을 빌드하며 HTTP를 사용하여 요청을 송신합니다. HTTP 응답이 수신되고 WebSphere
MQ 응답 메시지가 송신됩니다.
- 파일 > 새로 작성 > 메시지 플로우 프로젝트를 누르십시오.
- 프로젝트 이름을 WSCLIENT_MFP1으로 설정한 후
다음을 누르십시오.
- "참조 프로젝트" 분할창에서 WSCLIENT_MSP1을 선택한 후
완료를 누르십시오.
- 자원 네비게이터에서 WSCLIENT_MFP1을 마우스 오른쪽 단추로 누른 후
새로 작성 > 메시지 플로우를 누르십시오.
- 스키마를 WSCLIENT_MFP1으로 설정하십시오.
- 이름을 WSCLIENT_WSCLIENT1으로 설정한 후
완료를 누르십시오.
- 팔레트(숨겨진 경우)를 표시한 후 메시지 플로우 캔버스에 있는 다음 노드에 넣으십시오.
- 1 MQInput 노드
- 2 Compute 노드
- 1 MQReply 노드
- 1 HTTPRequest 노드
- 팔레트에서 연결을 누른 후 다음 노드 및 터미널에 연결하십시오.
- MQInput (out) - Compute (in)
- Compute (out) - HTTPRequest (in)
- HTTPRequest (out) - Compute1 (in)
- Compute1 (out) - MQreply (in)
- MQInput (레거시로부터의 MQInput) 노드를 사용자 정의하십시오.
- MQInput 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택하고 큐 이름을
WSCLIENT1_IN1으로 설정하십시오.
- 디폴트를 선택하십시오.
- 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
- 메시지 세트의 경우, 드롭다운 목록에서 WSCLIENT_MS1을 선택하십시오.
- 메시지 유형의 경우, 드롭다운 목록에서 msg_tagIA81BUY를 선택하십시오.
- 메시지 형식의 경우, 드롭다운 목록에서 CWF1을 선택하십시오.
- 확인을 누르십시오.
- Compute 노드를 사용자 정의하십시오.
- Compute 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
- 이 모듈에 대한 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;
- HTTPRequest 노드를 사용자 정의하십시오.
- HTTPRequest 노드를 마우스 오른쪽 단추로 누르고 등록 정보를 누르십시오.
- 기본을 선택하고 웹 서비스 URL을
http://localhost:7080/samplebrokerwshost로 설정하십시오. 웹 서비스를 호스트하는 브로커가
해당 브로커에 대해 다른 시스템에 있거나 디폴트가 아닌 포트 번호를 사용하는 경우 또는 둘 다인 경우,
이 URL을 적절하게 수정해야 합니다.
- 디폴트를 선택하십시오.
- 메시지 도메인의 경우, 드롭다운 목록에서 MRM을 선택하십시오.
- 메시지 세트의 경우, 드롭다운 목록에서 WSCLIENT_MS1을 선택하십시오.
- 메시지 유형의 경우, 드롭다운 목록에서 Envelope를 선택하십시오.
- 메시지 형식의 경우, 드롭다운 목록에서 XML1을 선택하십시오.
- 확인을 누르십시오.
- Compute1 노드를 사용자 정의하십시오.
- Compute1 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 누르십시오.
- 이 모듈에 대한 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;
- MQReply 노드를 사용자 정의하십시오.
- 완료된 사용자 정의가 없습니다.
- 컨텐츠를 저장하고 WSCLIENT_WSCLIENT1.esql을 닫으십시오.
- 컨텐츠를 저장하고 WSCLIENT_WSCLIENT1.msgflow를 닫으십시오.
샘플 홈으로 돌아가기