241장. Netty HTTP 구성 요소 (더 이상 사용되지 않음)
Camel 버전 2.12에서 사용 가능
netty-http 구성 요소는 Netty 를 사용하여 HTTP 전송을 용이하게 하는 Netty 구성 요소의 확장입니다.
이 camel 구성 요소는 생산자 및 소비자 끝점을 모두 지원합니다.
이 구성 요소는 더 이상 사용되지 않습니다. Netty4 HTTP 를 사용해야 합니다.
스트림. Netty는 스트림 기반이므로 수신하는 입력이 스트림으로 Camel에 제출됩니다. 즉, 스트림의 내용을 한 번만 읽을 수 있습니다. 메시지 본문이 비어 있는 것처럼 보이거나 데이터에 여러 번 액세스해야 하는 경우(예: 멀티 캐스트 작업 또는 오류 처리) 스트림 캐싱을 사용하거나 메시지 본문을 여러 번 다시 읽을 수 있는 문자열로 변환해야 합니다. Netty4 HTTP는 전체 http 메시지를 빌드하기 위해
io.netty.handler.codec.http.HttpObjectAggregator
를 사용하여 전체 스트림을 메모리에 읽습니다. 그러나 결과 메시지는 한 번 읽을 수 있는 스트림 기반 메시지입니다.
Maven 사용자는 이 구성 요소에 대해 pom.xml
에 다음 종속성을 추가해야 합니다.
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-netty-http</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
241.1. URI 형식
netty 구성 요소의 URI 스키마는 다음과 같습니다.
netty-http:http://0.0.0.0:8080[?options]
URI에 쿼리 옵션을 추가할 수 있습니다. ?option=value&option=value&…
쿼리 매개변수 vs 엔드 포인트 옵션. Camel이 URI 쿼리 매개변수 및 엔드포인트 옵션을 인식하는 방법에 대해 확신할 수 있습니다. 예를 들어 다음과 같이 엔드포인트 URI를 생성할 수 있습니다. netty-http:http//example.com?myParam=myValue&compression=true
. 이 예제에서 myParam
은 HTTP 매개변수이고 압축
은 Camel 끝점 옵션입니다. 이러한 상황에서 Camel에서 사용하는 전략은 사용 가능한 엔드포인트 옵션을 해결하고 URI에서 제거하는 것입니다. 이 예제에서는 Netty HTTP 생산자가 끝점으로 보낸 HTTP 요청이 대상 URL에서 해결 및 제거되므로 http//example.com?myParam=myValue
임을 의미합니다. 또한 동적 헤더(예:
CamelHttpQuery
)를 사용하여 끝점 옵션을 지정할 수 없습니다. 엔드포인트 옵션은 endpoint URI 정의 수준(예: DSL 요소)에서만 지정할 수 있습니다.