이 주제는 다음 절을 포함합니다.
입력 메시지 전체 또는 일부를 해당 서비스에 송신된 요청으로 사용하여 웹 서비스와 상호작용하려면 HTTPRequest 노드를 사용하십시오. 메시지를 메시지 플로우의 후속 노드로 전달하기 전에 웹 서비스 응답 컨텐츠로 증대된 입력 메시지의 컨텐츠에서 새 출력 메시지를 작성하도록 노드를 구성할 수도 있습니다.
이 노드는 구성에 따라 입력 메시지의 지정된 컨텐츠로부터 HTTP 또는 HTTP over SSL(HTTPS) 요청을 구성하고 이 요청을 웹 서비스로 송신합니다. 이 노드는 웹 서비스로부터 응답을 수신한 다음 응답을 구문 분석하여 출력 트리에 포함시킵니다. 구성에 필요한 경우 HTTP 헤더를 생성합니다.
HTTPInput 또는 HTTPReply 노드를 포함하지 않는 메시지 플로우에서 이 노드를 사용할 수 있습니다.
HTTPRequest 노드는 다음 메시지 도메인에 있는 메시지를 핸들링합니다.
HTTPRequest 노드는 Workbench에서 다음 아이콘으로 표시됩니다.
HTTPRequest 노드는 HTTP 요청을 송신해야 하는 메시지 플로우에서 사용할 수 있습니다. 이에 대한 가장 일반적인 예는 웹 서비스를 호출하는 메시지 플로우입니다. 웹 서비스 응용프로그램에 대한 정보는 웹 서비스 응용프로그램을 참조하십시오.
노드는 TCP/IP를 사용하여 외부 서비스와 직접 상호작용하므로 다음과 같은 유형의 오류가 발생할 수 있습니다.
노드가 이러한 오류를 감지하면, 예외를 생성하고 예외 목록을 수신한 오류 정보로 채운 후 입력 메시지를 변경하지 않고 failure 터미널로 라우트합니다.
응답은 BLOB로 출력됩니다. 노드가 응답 형식이 어떻게 될지 판별할 수 없기 때문입니다. 경로 재지정을 핸들링하도록 이 노드를 구성하지 않은 경우 경로 재지정 상태 코드(3xx)가 있는 메시지도 이런 방법으로 핸들링됩니다.
HTTPRequest 노드는 100 시리즈 상태 코드를 계속 응답으로 처리하므로 현재 응답을 제거하고 웹 서버의 다른 응답을 기다립니다.
200 시리즈 상태 코드는 성공으로 처리되므로 응답은 생성된 출력 메시지의 형식에 대해 노드의 다양한 탭에 설정된 값에 따라 노드의 Out 터미널로 라우트됩니다.
300 시리즈 상태 코드는 방향 재지정에 해당됩니다. 방향 재지정 준수 등록 정보를 선택할 경우, 노드는 수신된 응답에 지정된 새 노드로 요청을 다시 송신하지 않습니다. 방향 재지정 준수 등록 정보를 선택하지 않을 경우에는 위에서 오류 핸들링에 관한 절에 설명된 대로 코드를 오류로 처리합니다.
400 및 500 시리즈 상태 코드는 오류이므로 위에 있는 오류 핸들링 절에 설명된 대로 처리됩니다.
입력 메시지를 웹 서비스 응답으로 바꾸기 등록 정보나 입력을 오류로 바꾸기 등록 정보를 선택할 경우, 입력 메시지의 헤더(즉, HTTPRequest 노드의 IN 터미널에 도달하는 대로 메시지에 속하는 헤더)는 HTTPRequest 노드에서 나간 메시지와 함께 전달되지 않습니다. 그러나 메시지 트리에서의 위치를 지정하는 등록 정보 중 하나를 지정할 경우에는 입력 메시지의 헤더가 전달됩니다.
리모트 웹 서비스에서 리턴하는 헤더를 포함하는 HTTPResponse 헤더는 메시지에서 등록 정보 이후에 노드로부터 전달되는 첫 번째 헤더입니다. 이는 선택한 옵션에 관계없이 적용됩니다. 따라서 HTTPRequest 노드로부터의 응답을 MQ 큐에 넣으려면 MQMD가 첫 번째 헤더(등록 정보 이후로)가 되도록 헤더를 조작해야 합니다.
입력 메시지를 응답으로 바꿀 경우, 입력 메시지의 MQMD를 HTTPRequest 노드 이전에 Environment 트리로 복사한 후 HTTPRequest 노드 이후에 다시 메시지 트리로 복사할 수 있습니다. 응답 위치를 지정할 경우, 기존 입력 메시지 헤더를 유지보수하려면 MQMD가 첫 번째 헤더가 되도록 HTTP 응답 헤더를 이동하거나 제거해야 합니다.
SET OutputRoot = InputRoot; SET OutputRoot.HTTPResponseHeader = NULL;
SET OutputRoot = InputRoot; DECLARE HTTPHeaderRef REFERENCE TO OutputRoot.HTTPResponseHeader; DETACH HTTPHeaderRef; ATTACH HTTPHeaderRef TO OutputRoot.MQMD AS NEXTSIBLING;
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'GET';
HTTPRequest 노드 인스턴스를 메시지 플로우에 넣었으면 이 노드를 구성할 수 있습니다. 편집기 보기에서 이 노드를 마우스 오른쪽 단추로 누른 후 등록 정보를 누르십시오. 노드의 기본 등록 정보가 표시됩니다.
값을 입력해야 하는 모든 필수 등록 정보(정의된 디폴트 값이 없는 등록 정보)는 등록 정보 대화 상자에서 별표(*)로 표시됩니다.
다음과 같이 HTTPRequest 노드를 구성하십시오.
처음 두 가지 옵션은 각 입력 메시지가 메시지 플로우를 통해 전달되는 경우 해당 메시지의 URL을 설정할 수 있도록 동적 방법을 제공합니다. 이들 옵션 중 하나를 사용하려면 HTTPRequest 노드가 필수 값을 작성 및 초기화하기 전에 Compute 노드를 메시지 플로우에 포함시켜야 합니다.
세 번째 옵션은 이 노드에 수신되는 모든 메시지에 고정된 값을 제공합니다. 다른 필드를 작성하지 않은 경우에 사용되는 디폴트 설정을 포함시키려면 이 등록 정보를 설정하십시오. 그렇지 않으면 널값이 포함됩니다. 필드에 값이 포함된 경우 이 등록 정보의 설정은 무시됩니다. 웹 서비스 URL 등록 정보는 올바른 URL을 포함해야 합니다. 그렇지 않으면 전개에 실패합니다. 또한 X-Original-HTTP-URL 또는 LocalEnvironment.Destination.HTTP.RequestURL에 설정된 값이 올바른 URL인지 확인해야 합니다. 그렇지 않을 경우 노드는 예외를 생성하고 메시지는 failure 터미널로 전달됩니다.
URL이 http://로 시작하면 요청 노드가 지정된 URL에 대한 HTTP 요청을 작성합니다. URL이 https://로 시작하면 요청 노드가 노드의 SSL 탭에 지정된 매개변수를 사용하여 지정된 URL에 대해 HTTP over SSL(HTTPS) 요청을 작성합니다.
HTTP/1.1을 선택할 경우 HTTP/1.1 활성 유지(keepalive)도 사용하는 옵션이 제공됩니다.
SSL 연결의 양 끝 모두 사용할 프로토콜에 동의해야 하므로 선택한 프로토콜은 리모트 서버가 승인할 수 있는 프로토콜이어야 합니다.
요청 메시지가 입력 메시지의 서브세트를 포함하려면 이 선택란을 지우고 트리의 요청 메시지 위치 등록 정보를 완성하십시오.
참조 내의 표현식을 포함하여 올바른 ESQL 필드 참조를 입력할 수 있습니다. 예를 들면, 다음을 입력합니다.
InputRoot.XMLNS.ABC
전체 입력 메시지를 요청으로 사용 선택란을 선택하면 이 등록 정보가 무시됩니다.
적절한 메시지 트리 컨텐츠를 구문 분석하여 비트스트림을 작성할 때 입력 메시지 본문과 연관되고 등록 정보 폴더에 저장된 메시지 등록 정보(도메인, 세트, 유형 및 형식)가 사용됩니다.
웹 서비스 응답 메시지가 입력 메시지 컨텐츠의 일부로 출력 메시지를 포함하려면 이 선택란을 지우고 트리의 응답 메시지 위치 등록 정보를 완성하십시오. 이 등록 정보를 지우면, 노드는 입력 메시지를 출력 메시지에 복사한 후 이 출력 메시지 컨텐츠 위의 지정된 위치에 웹 서비스 응답 메시지를 씁니다. (입력 메시지 자체는 수정되지 않습니다.)
참조 내의 표현식 및 새 필드 참조(응답을 위해 새 노드를 메시지 트리에 작성하기 위함)를 포함하여 올바른 모든 ESQL 필드 참조를 입력할 수 있습니다. 예를 들면, 다음을 입력합니다.
OutputRoot.XMLNS.ABC.DEF또는
Environment.WSReply
입력 메시지를 웹 서비스 응답으로 바꾸기 선택란을 선택하면 이 등록 정보가 무시됩니다.
응답 비트스트림을 구문 분석하여 메시지 트리 컨텐츠를 작성할 때 노드 디폴트 등록 정보(아래 설명됨)에 지정한 메시지 등록 정보(도메인, 세트, 유형 및 형식)가 사용됩니다.
노드가 요청 메시지의 HTTPRequestHeader를 생성하지 않게 하려면 입력으로부터 디폴트 HTTP 헤더 생성 선택란을 지우십시오(디폴트 설정이 선택됨). 요청 메시지에 포함된 HTTPRequestHeader의 컨텐츠를 제어하려면, HTTPRequest 노드 앞에 있는 입력 메시지에 HTTPRequestHeader를 추가하는 Compute 노드를 메시지 플로우에 포함시키고 이 선택란을 지우십시오.
또한 웹 서비스 헤더가 HTTPRequestHeader 또는 HTTPInputHeader에 없으면 디폴트 값을 사용하여 다음 표에 표시된 웹 서비스 헤더를 추가합니다.
헤더 | 디폴트 값 |
---|---|
SOAPAction | ""(빈 문자열) |
Content-Type | text/xml; charset=utf-8 |
Host | 요청을 송신할 호스트 이름 |
또한 Content-Length 선택적 헤더가 HTTPRequestHeader 또는 HTTPInputHeader에 없더라도 올바른 계산 값을 사용하여 이 헤더를 추가합니다.
웹 서비스 오류 메시지가 입력 메시지 컨텐츠의 일부로 출력 메시지를 포함하려면 이 선택란을 지우고 오류 메시지 위치 등록 정보를 완성하십시오. 이 등록 정보를 지우면, 노드는 입력 메시지를 출력 메시지에 복사한 후 이 출력 메시지 컨텐츠 위의 지정된 위치에 웹 서비스 오류 메시지를 씁니다. (입력 메시지 자체는 수정되지 않습니다.)
참조 내의 표현식 및 새 필드 참조(응답을 위해 새 노드를 메시지 트리에 작성하기 위함)를 포함하여 올바른 모든 ESQL 필드 참조를 입력할 수 있습니다. 예를 들면, 다음을 입력합니다.
OutputRoot.XMLNS.ABC.DEF또는
Environment.WSError
입력을 오류로 바꾸기 선택란을 선택하면 이 등록 정보가 무시됩니다.
웹 서비스에서 오류 메시지가 리턴되면 이러한 등록 정보의 값은 무시되고 BLOB 구문 분석기에서 해당 메시지를 구문 분석합니다.
XML, XMLNS, XMLNSC, JMS, MIME 및 BLOB 구문 분석기에 대해서는 메시지 세트를 공백으로 남겨 두십시오.
XML, XMLNS, XMLNSC, JMS, MIME, BLOB 및 IDOC 구문 분석기에 대해서는 메시지 유형을 공백으로 남겨 두십시오.
XML, XMLNS, XMLNSC, JMS, MIME 및 BLOB 구문 분석기에 대해서는 메시지 형식를 공백으로 남겨 두십시오.
자세한 정보는 메시지 유효성 검증 및 MRM 도메인에서 메시지의 유효성 검증 등록 정보를 참조하십시오.
대화 상자를 닫고 등록 정보에서 작성한 모든 변경을 제거하려면 취소를 누르십시오.
메시지에 대한 추가 처리, 오류 처리 또는 메시지를 추가 목적지에 송신하려면 이 노드의 out, error 또는 failure 터미널을 이 메시지 플로우의 다른 노드에 연결하십시오. error 터미널을 연결하지 않으면 메시지는 제거됩니다. failure 터미널을 연결하지 않으면 브로커는 메시지 플로우 내의 오류 핸들링에 설명된 디폴트 오류 처리를 제공합니다.
다음 표에는 HTTPRequest 노드 터미널이 설명되어 있습니다.
터미널 | 설명 |
---|---|
In | 노드가 처리할 메시지를 승인하는 입력 터미널. |
Failure | 노드의 처리 중에 실패가 감지될 경우 메시지가 라우트될 출력 터미널. |
Out | 웹 서비스 요청의 정상적인 완료를 나타내는 경우와 이 메시지 플로우에 추가 처리가 필요한 경우 메시지가 라우트되는 출력 터미널. |
오류 | HTTP 경로 재지정 따름 등록 정보를 설정하지 않은 경우의 경로 재지정 코드(3xx)를 포함하여 200 - 299 범위를 벗어난 HTTP 상태 코드가 포함된 메시지에 대한 출력 터미널. |
다음 표에는 노드 등록 정보가 설명되어 있습니다. 앞에 M이 표시된 열은 등록 정보가 필수임을 나타내며(디폴트가 정의되지 않았을 때 값을 입력해야 하는 경우 등록 정보 대화 상자에 별표(*)로 표시됨) 앞에 C가 표시된 열은 등록 정보가 구성 가능함을 나타냅니다(메시지 플로우를 Bar 파일에 추가하여 전개할 때 값을 변경할 수 있음).
다음 표에는 HTTPRequest 노드 기본 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
웹 서비스 URL | 예 | 예 | 웹 서비스의 URL. http://<hostname>[:<port>]/[<path>]
양식으로 이를 제공해야 합니다. 여기서
|
|
요청 시간 종료 | 예 | 아니오 | 120 | 노드가 웹 서비스로부터 응답을 기다리는 시간(초). 올바른 범위는 1에서 (31)-1까지입니다. 무제한 대기하는 값은 입력할 수 없습니다. |
HTTP 프록시 위치 | 아니오 | 예 | 요청이 송신되는 프록시 서버. hostname:port 형식이어야 합니다. | |
HTTP 경로 재지정 따름 | 아니오 | 아니오 | 지우기 | HTTP 경로 재지정을 따르는지 여부. 선택란을 선택하면 경로 재지정을 따릅니다. 선택란을 지우면 경로 재지정을 따르지 않습니다. |
HTTP 버전 | 아니오 | 예 | 1.0 | 요청에 사용할 HTTP 버전. 올바른 값은 1.0 및 1.1입니다. |
HTTP/1.1 활성 유지(Keep-Alive) 사용 | 아니오 | 예 | 선택됨(HTTP 버전이 1.1일 경우) | HTTP/1.1 활성 유지(Keep-Alive) 사용 |
다음 표에는 HTTPRequest 노드 SSL 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
프로토콜 | 아니오 | 예 | SSL | HTTPS 요청 작성 시 사용할 SSL 프로토콜. |
허용되는 SSL 암호 | 아니오 | 예 | SSL 요청 작성 시 사용할 암호 목록(쉼표로 분리). 디폴트 값인 비어있는 문자열은 사용 가능한 모든 암호 사용을 의미합니다. |
다음 표에는 HTTPRequest 노드 고급 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
전체 입력 메시지를 요청으로 사용 | 아니오 | 아니오 | 선택 | 웹 서비스로 전체 입력 메시지 본문을 전달할지 여부. 이 선택란을 선택하면 이 조치가 수행됩니다. 이 선택란을 지우면 트리의 요청 메시지 위치를 지정해야 합니다. |
트리의 요청 메시지 위치 | 예 | 아니오 | InputRoot | 웹 서비스로 송신할 비트스트림의 작성을 시작할 위치. 이 등록 정보는 ESQL 필드 참조의 형식을 사용합니다. |
입력 메시지를 웹 서비스 응답으로 바꾸기 | 아니오 | 아니오 | 선택 | 웹 서비스 응답 메시지가 작성된 출력 메시지의 컨텐츠로서 입력 메시지의 사본을 바꾸는지 여부. 이 선택란을 선택하면 이 조치가 수행됩니다. 이 선택란을 지우면 트리의 응답 메시지 위치를 지정해야 합니다. |
트리의 응답 메시지 위치 | 예 | 아니오 | OutputRoot | 웹 서비스 응답 비트스트림에 있는 구문 분석된 요소의 저장을 시작할 위치. 이 등록 정보는 ESQL 필드 참조의 형식을 사용합니다. |
입력으로부터 디폴트 HTTP 헤더 생성 | 아니오 | 아니오 | 선택 | HTTPRequestHeader가 생성되는지의 여부. 이 선택란을 선택하면 이 조치가 수행됩니다. 이 선택란을 지우면 입력 메시지에 올바른 HTTPRequestHeader가 존재해야 합니다. |
다음 표에는 HTTPRequest 노드 오류 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
입력을 오류로 바꾸기 | 아니오 | 아니오 | 선택 | 입력 메시지 컨텐츠를 오류 메시지 컨텐츠로 바꿀지 여부. 이 선택란을 선택하면 조치가 수행됩니다. 이 선택란을 지우면 오류 메시지 위치를 지정해야 합니다. |
오류 메시지 위치 | 예 | 아니오 | OutputRoot | 웹 서비스 오류 비트스트림에 있는 구문 분석된 요소의 저장을 시작할 위치. 이 등록 정보는 ESQL 필드 참조의 형식을 사용합니다. |
다음 표에는 HTTPRequest 노드 디폴트 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
메시지 도메인 | 아니오 | 아니오 | 웹 서비스에서 수신되는 응답 메시지를 구문 분석하는 데 사용하는 도메인 | |
메시지 세트 | 아니오 | 아니오 | 응답 메시지를 정의하는 메시지 세트의 이름 또는 ID | |
메시지 유형 | 아니오 | 아니오 | 응답 메시지의 이름 | |
메시지 형식 | 아니오 | 아니오 | 응답 메시지의 물리적 형식 이름 |
다음 표에는 HTTPRequest 노드의 유효성 검증 등록 정보가 설명되어 있습니다.
이 등록 정보에 대한 자세한 설명은 MRM 도메인에서 메시지의 유효성 검증 등록 정보를 참조하십시오.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
유효성 검증 | 아니오 | 예 | 없음 | 유효성 검증이 발생하는지의 여부. 올바른 값은 없음, 컨텐츠 및 값, 컨텐츠 및 상속입니다. |
실패 조치 | 아니오 | 아니오 | 예외 | 유효성 검증에 실패한 경우의 조치. 유효성 검증을 컨텐츠 또는 컨텐츠 및 값으로 설정한 경우에만 이 등록 정보를 설정할 수 있습니다. 올바른 값은 사용자 추적, 로컬 오류 로그, 예외 및 예외 목록입니다. |
모든 값 제한조건 포함 | 아니오 | 아니오 | 선택 | 이 등록 정보는 편집할 수 없습니다. 선택될 선택란에 표시되는 디폴트 조치는 컨텐츠 및 값 유효성 검증 내에 기본 값 제한조건 점검이 포함되어 있는 것입니다. |
수정사항 | 아니오 | 아니오 | 없음 | 이 등록 정보는 편집할 수 없습니다. |
다음 표에는 HTTPRequest 노드의 일반 메시지 옵션 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
구문 분석 타이밍 | 아니오 | 아니오 | 요청시 | 이 등록 정보는 입력 메시지를 구문 분석하는 시기를 제어합니다.
올바른 값은 요청시,
즉시 및
완료입니다. 이 등록 정보에 대한 자세한 설명은 요청시 구문 분석을 참조하십시오. |
MQRFH2 도메인에 MQRFH2C 압축 구문 분석기 사용 | 아니오 | 아니오 | 지우기 | 이 등록 정보는 MQRFH2 헤더에 MQRFH2 구문 분석기 대신 MQRFH2C 압축 구문 분석기를 사용하는지 여부를 제어합니다. |
다음 표에는 HTTPRequest 노드의 XMLNSC 구문 분석기 옵션 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
XMLNS 도메인에 XMLNSC 압축 구문 분석기 사용 | 아니오 | 아니오 | 지우기 | ![]() ![]() |
혼합 컨텐츠 보유 모드 | 아니오 | 아니오 | 없음 | 이 등록 정보는 XMLNSC 구문 분석기가 입력 메시지에서 혼합 텍스트를 발견할 경우 메시지 트리에서 요소를 작성하는지 여부를 제어합니다. 올바른 값은 없음 및 모두입니다. 모두를 선택하면 혼합 텍스트에 대해 요소가 작성됨을 의미합니다. 없음을 선택하면 혼합 텍스트가 무시되고 요소가 작성되지 않음을 의미합니다. |
주석 보유 모드 | 아니오 | 아니오 | 없음 | 이 등록 정보는 XMLNSC 구문 분석기가 입력 메시지에서 주석을 발견할 경우 메시지 트리에서 요소를 작성하는지 여부를 제어합니다. 올바른 값은 없음 및 모두입니다. 모두를 선택하면 주석에 대해 요소가 작성됨을 의미합니다. 없음을 선택하면 주석이 무시되고 요소가 작성되지 않음을 의미합니다. |
처리 지시사항 보유 모드 | 아니오 | 아니오 | 없음 | 이 등록 정보는 XMLNSC 구문 분석기가 입력 메시지에서 처리 지시사항을 발견할 경우 메시지 트리에서 요소를 작성하는지 여부를 제어합니다. 올바른 값은 없음 및 모두입니다. 모두를 선택하면 처리 지시사항에 대해 요소가 작성됨을 의미합니다. 없음을 선택하면 처리 지시사항이 무시되고 요소가 작성되지 않음을 의미합니다. |
다음 표에는 HTTPRequest 노드 설명 등록 정보가 설명되어 있습니다.
등록 정보 | M | C | 디폴트 | 설명 |
---|---|---|---|---|
간단한 설명 | 아니오 | 아니오 | 노드에 대한 간략한 설명. | |
자세한 설명 | 아니오 | 아니오 | 메시지 플로우에서 노드의 목적을 설명하는 텍스트. |