17.4. 끝점 옵션
CXF 끝점은 URI 구문을 사용하여 구성됩니다.
cxf:beanId:address
cxf:beanId:address
다음과 같은 경로 및 쿼리 매개변수 사용:
17.4.1. 경로 매개변수(2 매개변수) 링크 복사링크가 클립보드에 복사되었습니다!
이름 | 설명 | Default | 유형 |
---|---|---|---|
clusterlanId (common) | 구성된 기존 CxfEndpoint를 조회하려면 다음을 수행하십시오. 접두사로 console:을 사용해야 합니다. | 문자열 | |
주소 (서비스) | 서비스 게시 주소입니다. | 문자열 |
17.4.2. 쿼리 매개변수(35 매개변수) 링크 복사링크가 클립보드에 복사되었습니다!
이름 | 설명 | Default | 유형 |
---|---|---|---|
dataFormat (공용) | CXF 끝점에서 지원하는 데이터 유형 메시지입니다. CloudEvent 값:
| POJO | DataFormat |
wrapStyle (common) | CloudEvent 본문에 매개 변수가 표시되는 방법을 설명하는 WSDL 스타일입니다. 값이 false인 경우 CXF는 document-literal unwrapped 스타일을 선택하고 값이 true이면 CXF는 document-literal wrap 스타일을 선택합니다. | 부울 | |
bridgeErrorHandler (consumer) | 사용자가 Camel 라우팅 오류 핸들러로 브리징할 수 있습니다. 이는 소비자가 수신되는 메시지 또는 등을 선택하는 동안 예외가 발생한 것을 의미하며, 이제 라우팅 오류 처리기에 의해 처리되고 라우팅 오류 처리기에 의해 처리됩니다. 기본적으로 소비자는 org.apache.camel.spi.ExceptionHandler를 사용하여 WARN 또는 ERROR 수준에서 로깅되고 무시되는 예외를 처리합니다. | false | boolean |
exceptionHandler (consumer (advanced)) | 사용자가 사용자 정의 ExceptionHandler를 사용하도록 하려면 다음을 수행합니다. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션을 사용하지 않습니다. 기본적으로 소비자는 예외를 처리하며 WARN 또는 ERROR 수준에서 로깅되고 무시됩니다. | ExceptionHandler | |
exchangePattern (consumer (advanced)) | 소비자가 교환을 만들 때 교환 패턴을 설정합니다. CloudEvent 값:
| ExchangePattern | |
cookieHandler (producer) | HTTP 세션을 유지하도록 쿠키 처리기를 구성합니다. | CookieHandler | |
defaultOperationName (producer) | 이 옵션은 원격 서비스를 호출하는 CxfProducer에서 사용할 기본 operationName을 설정합니다. | 문자열 | |
defaultOperationNamespace (producer) | 이 옵션은 원격 서비스를 호출하는 CxfProducer에서 사용할 기본 operationNamespace를 설정합니다. | 문자열 | |
HostnameVerifier (producer) | 사용할 호스트 이름 확인자입니다. # 표기법을 사용하여 레지스트리에서 HostnameVerifier를 참조합니다. | HostnameVerifier | |
lazyStartProducer (producer) | 첫 번째 메시지에서 생산자를 lazy로 시작해야 하는지 여부입니다. lazy를 시작하여 이를 사용하여 생산자가 시작되지 않고 생산자가 실패할 수 있는 상황에서 CamelContext 및 경로가 시작될 수 있도록 허용할 수 있습니다. 이 시작이 지연되도록 지연되면 Camel의 라우팅 오류 핸들러를 통해 메시지를 라우팅하는 동안 시작 실패를 처리할 수 있습니다. 첫 번째 메시지가 처리되면 프로듀서 생성 및 시작이 다소 시간이 걸릴 수 있으며 총 처리 시간이 길어질 수 있습니다. | false | boolean |
sslContextParameters (producer) | Camel SSL 설정 참조. # 표기법을 사용하여 SSL 컨텍스트를 참조합니다. | SSLContextParameters | |
래핑 (producer) | CXF 엔드 포인트 프로듀서가 호출할 작업의 종류입니다. | false | boolean |
동기 (제조자(고급)) | 동기 처리를 엄격하게 사용해야 하는지 여부를 설정합니다. | false | boolean |
allowStreaming (advanced) | 이 옵션은 PAYLOAD 모드에서 실행할 때 CXF 구성 요소를 제어하는지 여부를 제어합니다.이 옵션은 들어오는 메시지를 skopeo로 구문 분석하거나 경우에 따라 스트리밍을 허용하는 javax.xml.transform.Source 개체로 페이로드를 유지합니다. | 부울 | |
버스 (advanced) | 사용자 정의 구성된 CXF 버스를 사용합니다. | 버스 | |
연속 시간 제한 (advanced) | 이 옵션은 CXF 서버가>-<ty 또는 Servlet 전송을 사용할 때 기본적으로 CxfConsumer에서 사용할 수 있는 CXF 연속 타임아웃을 설정하는 데 사용됩니다. | 30000 | long |
cxfBinding (advanced) | 사용자 지정 CxfBinding을 사용하여 Camel Message와 CXF Message 간 바인딩을 제어합니다. | CxfBinding | |
cxfConfigurer (advanced) | 이 옵션은 프로그래밍 방식으로 CXF 끝점 구성을 지원하는 org.apache.camel.component.cxf.CxfEndpointConfigurer 구현을 적용할 수 있습니다. 사용자는 CxfEndpointConfigurer의 configure{ServerClient} 메서드를 구현하여 CXF 서버 및 클라이언트를 구성할 수 있습니다. | CxfConfigurer | |
defaultBus (advanced) | CXF 엔드포인트가 자체적으로 버스를 생성하는 경우 기본 버스를 설정합니다. | false | boolean |
headerFilterStrategy (advanced) | 사용자 정의 HeaderFilterStrategy를 사용하여 Camel 메시지 간 헤더를 필터링하려면 다음을 수행합니다. | HeaderFilterStrategy | |
mergeProtocolHeaders (advanced) | 프로토콜 헤더 병합 여부입니다. 활성화하면 Camel과 CXF 간의 헤더 전파가 일관되고 비슷합니다. 자세한 내용은 CAMEL-6393을 참조하십시오. | false | boolean |
mtomEnabled (advanced) | MTOM(연결)을 활성화하려면 다음을 수행합니다. 이를 위해서는 gRPC 또는 PAYLOAD 데이터 형식 모드를 사용해야 합니다. | false | boolean |
속성 (고급) | 맵의 키/값 쌍을 사용하여 추가 CXF 옵션을 설정하려면 다음을 수행하십시오. 예를 들어 stacktraces를 10.0.0.1 결함, properties.faultStackTraceEnabled=true로 설정하려면 다음을 수행하십시오. | map | |
skipPayloadMessagePartCheck (advanced) | message validation을 비활성화해야 하는지 여부를 설정합니다. | false | boolean |
loggingFeatureEnabled (logging) | 이 옵션을 사용하면 인바운드 및 아웃바운드 iPXE 메시지를 로그에 쓰는 CXF 로깅 기능을 활성화합니다. | false | boolean |
loggingSizeLimit (logging) | 로깅 기능이 활성화되고 제한 없이 -1이 출력될 때 로거에서 출력하는 총 바이트 수 크기를 제한하려면 다음을 수행합니다. | 49152 | int |
skipFaultLogging (logging) | 이 옵션은 PhaseInterceptor가 catch된 Fault 로깅을 건너뛸지 여부를 제어합니다. | false | boolean |
암호 (보안) | 이 옵션은 CXF 클라이언트에 대한 암호의 기본 인증 정보를 설정하는 데 사용됩니다. | 문자열 | |
사용자 이름 (보안) | 이 옵션은 CXF 클라이언트에 대한 사용자 이름의 기본 인증 정보를 설정하는 데 사용됩니다. | 문자열 | |
bindingId (service) | 사용할 서비스 모델의 bindingId입니다. | 문자열 | |
portName (서비스) | 이 서비스가 구현 중인 엔드포인트 이름은 wsdl:portname에 매핑됩니다. ns:PORT_NAME 형식에서 ns는 이 범위에서 유효한 네임스페이스 접두사입니다. | 문자열 | |
publishedEndpointUrl (service) | 이 옵션은 서비스 주소 url 더하기 wsd를 사용하여 액세스할 수 있는 WSDL에서 게시한 endpointUrl을 덮어쓸 수 있습니다. | 문자열 | |
serviceClass (서비스) | SEI(Service Endpoint Interface) 클래스의 클래스 이름입니다. 이 클래스에는 주석이 있거나 주석이 없을 수 있습니다. | 클래스 | |
ServiceName (서비스) | 이 서비스가 구현하는 서비스 이름은 wsdl:servicename에 매핑됩니다. | 문자열 | |
wsdlURL (서비스) | WSDL의 위치입니다. classpath, 파일 시스템에 있거나 원격으로 호스팅될 수 있습니다. | 문자열 |
serviceName
및 portName
은 QNames 이므로 제공하는 경우 위의 예제와 같이 해당 {namespace}를 사용하여 접두사를 붙여야 합니다.
17.4.3. 데이터 형식에 대한 설명 링크 복사링크가 클립보드에 복사되었습니다!
Apache Camel에서 Camel CXF 구성 요소는 웹 서비스와 경로를 통합하는 핵심입니다. Camel CXF 구성 요소를 사용하여 다음 방법 중 하나로 사용할 수 있는 CXF 엔드포인트를 생성할 수 있습니다.
- Consumer -(경로 시작)는 경로와 통합되는 웹 서비스 인스턴스를 나타냅니다. 경로에 삽입된 페이로드 유형은 끝점의 dataFormat 옵션의 값에 따라 다릅니다.
- 생산자 - 경로의 다른 지점에서는 현재 교환 오브젝트를 원격 웹 서비스의 작업 호출로 변환하는 WS 클라이언트 프록시를 나타냅니다. 현재 교환의 형식은 끝점의 dataFormat 설정과 일치해야 합니다.
DataFormat | 설명 |
---|---|
| Java 오브젝트(이전 Java 오브젝트)는 대상 서버에서 호출되는 메서드에 대한 Java 매개변수입니다. 프로토콜 및 LogicalECDHE-WS 핸들러가 모두 지원됩니다. |
|
|
|
|
|
|
exchange 속성인 CamelCXFDataFormat
을 검색하여 교환의 데이터 형식 모드를 확인할 수 있습니다. 교환 키 상수는 org.apache.camel.component.cxf.common.message.CxfConstants.DATA_FORMAT_PROPERTY
에 정의되어 있습니다.
17.4.4. RAW 모드에서 CXF의 LoggingOutInterceptor를 활성화하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
CXF의 LoggingOutInterceptor
는 로깅 시스템(Java Util Logging)으로 전선되는 아웃바운드 메시지를 출력합니다. LoggingOutInterceptor
는 PRE_STREAM
단계( PRE_STREAM
단계가 RAW
모드에서 제거됨)이므로 WRITE
단계 중에 LoggingOutInterceptor
를 실행하도록 구성해야 합니다. 다음은 예제입니다.
17.4.5. relayHeaders 옵션에 대한 설명 링크 복사링크가 클립보드에 복사되었습니다!
GDBWSWSDL -first 개발자의 관점에서 대역 내 및 대역 외 유선 헤더가 있습니다.
in-band 헤더는 iPXE 헤더와 같은 엔드포인트에 대한 WSDL 바인딩 계약의 일부로 명시적으로 정의된 헤더입니다.
대역 외 헤더는 전선을 통해 직렬화되는 헤더이지만 WSDL 바인딩 계약의 일부가 아닌 헤더입니다.
헤더 릴레이/필터링은 양방향입니다.
경로에 CXF 엔드포인트가 있고 개발자에게 다른 CloudEventWS 엔드포인트에서 사용할 경로를 따라 중계되는 온-the-wire 헤더가 있어야 하는 경우, relayHeaders
를 true
로 설정해야 합니다.
17.4.6. iPXE 모드에서만 사용 가능 링크 복사링크가 클립보드에 복사되었습니다!
relayHeaders=true
는 헤더를 릴레이하려는 의도를 나타냅니다. 지정된 헤더가 릴레이되었는지의 실제 결정은 MessageHeadersRelay
인터페이스를 구현하는 플러그 가능 인스턴스에 위임됩니다. 헤더를 릴레이해야 하는지 결정하는 데 필요한 MessageHeadersRelay
의 구체적인 구현이 제공됩니다. 이미 잘 알려진 iPXE 네임 스페이스에 자신을 바인딩하는 SoapMessageHeadersRelay
구현이 있습니다. 현재 대역 외 헤더만 필터링되고 relayHeaders=true
인 경우 in-band 헤더가 항상 중계됩니다. 런타임에 네임 스페이스를 알 수 없는 전선에 헤더가 있는 경우 대체 DefaultMessageHeadersRelay
가 사용되므로 모든 헤더를 릴레이할 수 있습니다.
relayHeaders=false
설정은band 및 out-of-band의 모든 헤더를 삭제해야 함을 지정합니다.
자체 MessageHeadersRelay
구현을 플러그인화하거나 릴레이 목록에 추가할 수 있습니다. 사전 로드된 릴레이 인스턴스를 재정의하려면 MessageHeadersRelay
구현에서 재정의하려는 것과 동일한 네임 스페이스를 서비스해야 합니다. 또한 덮어쓰기 중 하나는 재정의하려는 이름으로 모든 네임 스페이스를 서비스해야 합니다. 그렇지 않으면 경로 시작 시 런타임 예외가 발생합니다. 이 경우 인스턴스 매핑을 릴레이하기 위해 네임 스페이스에 모호성을 도입하기 때문입니다.
헤더를 릴레이/드롭할 수 있는 방법을 보여주는 테스트를 살펴보십시오.
-
emptyDir
및PAYLOAD
모드가 지원됩니다. VMDK모드에서는
in-band 헤더가 처리되어 CXF에 의해 헤더 목록에서 제거되므로 대역 외 메시지 헤더만 필터링에 사용할 수 있습니다. in-band 헤더는 192.0.2. 모드의MessageContentList
에 통합됩니다.camel-cxf
구성 요소는MessageContentList
에서 대역 내 헤더를 제거하려고 합니다. 대역 내 헤더를 필터링해야 하는 경우PAYLOAD
모드 또는 플러그인을 CXF 엔드포인트에 CXF 인터셉터/JAXWS Handler에 사용하십시오. -
Message Header Relay 메커니즘이
CxfHeaderFilterStrategy
에 병합되었습니다.relayHeaders
옵션, 해당 의미 체계 및 기본값은 동일하게 유지되지만CxfHeaderFilterStrategy
의 속성입니다. 다음은 구성하는 예입니다.
그러면 끝점이 CxfHeaderFilterStrategy
를 참조할 수 있습니다.
그런 다음 다음과 같이 경로를 설정합니다.
rom("cxf:bean:routerNoRelayEndpoint") .to("cxf:bean:serviceNoRelayEndpoint");
rom("cxf:bean:routerNoRelayEndpoint")
.to("cxf:bean:serviceNoRelayEndpoint");
-
MessageHeadersRelay
인터페이스가 약간 변경되었으며 이름이MessageHeaderFilter
로 변경되었습니다.CxfHeaderFilterStrategy
의 속성입니다. 다음은 사용자 정의 Message Header Filters를 구성하는 예입니다.
-
relayHeaders
외에 다음 속성을CxfHeaderFilterStrategy
에서 구성할 수 있습니다.
이름 | 필수 항목 | 설명 |
---|---|---|
| 없음 |
모든 메시지 헤더는 Message Header Filters Type: |
| 없음 |
모든 메시지 헤더는 (Message Header Filter에 의한 처리없이) Type: |
| 없음 |
활성화 네임스페이스에서 두 필터가 겹치면 속성 제어 방법을 처리합니다. 값이 |