240장. Netty HTTP Component (더 이상 사용되지 않음)
Camel 버전 2.12에서 사용 가능
netty-http 구성 요소는 Netty 로 HTTP 전송을 용이하게 하는 Netty 구성 요소에 대한 확장입니다.
이 camel 구성 요소는 생산자 및 소비자 끝점을 모두 지원합니다.
이 구성 요소는 더 이상 사용되지 않습니다. Netty4 HTTP 를 사용해야 합니다.
스트림. Netty는 스트림을 기반으로 하며, 수신한 입력이 Camel에 스트림으로 제출됨을 의미합니다. 즉, 스트림 내용을 한 번만 읽을 수 있습니다. 메시지 본문이 비어있는 것처럼 보이거나 데이터에 여러 번 액세스해야 하는 경우(예: 멀티 캐스트링 또는 redelivery 오류 처리) 스트림 캐싱을 사용하거나 메시지 본문을 여러 번 다시 읽을 수 있는 문자열로 변환해야 합니다. 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>
240.1. URI 형식
netty 구성 요소의 URI 스키마는 다음과 같습니다.
netty-http:http://0.0.0.0:8080[?options]
?option=value&option=value&… 형식의 URI에 쿼리 옵션을
추가할 수 있습니다.
쿼리 매개변수 vs 끝점 옵션. Camel에서 URI 쿼리 매개변수 및 끝점 옵션을 인식하는 방법에 대해 우려할 수 있습니다. 예를 들어 netty-http:http//example.com?myParam=myValue&com=true
로 끝점 URI를 생성할 수 있습니다. 이 예에서 myParam
은 HTTP 매개변수이며 압축
은 Camel 엔드포인트 옵션입니다. 이러한 상황에서 Camel에서 사용하는 전략은 사용 가능한 엔드포인트 옵션을 해결하고 URI에서 제거하는 것입니다. 즉, Netty HTTP 프로듀서에서 끝점으로 보낸 HTTP 요청은 대상 URL에서 압축
끝점 옵션이 해결되고 제거되므로 http//example.com?myParam=myValue
와 같습니다. 동적 헤더(예: CamelHttpQuery
)를 사용하여 끝점 옵션을 지정할 수도 없습니다. 끝점 옵션은 엔드포인트 URI 정의 수준에서만 지정할 수 있습니다(예: DSL 요소와 유사).