2012-03-10 2 views
0

스프링, cxf 및 jax ws 구현을 사용하여 구현 된 웹 서비스가 있습니다. 내 서비스는 10 개의 작업을 노출하고 일부 작업은 200 개가 넘는 필드를 반환합니다. 이제 낙타를 사용하여 웹 서비스를 프록시하고 싶습니다. 필요한 작업과 필수 필드 만 사용하여 여러 클라이언트에 서로 다른 WSDL을 제공하고자합니다. 우리 고객 중 하나는 해당 웹 서비스의 작업에서 노출 된 200 개의 필드 중 일부 필드만으로 10 개의 특정 작업을 수행하려고합니다. 나는 이것을 낙타를 통해 어떻게 얻을 수 있습니까?낙타를 사용하여 웹 서비스를 프록시하는 방법은 무엇입니까?

답변

1

은 CXF와 함께 찬반 양론이있을 수 있습니다, 당신은 당신의 낙타 인스턴스를 배포하는 방법에 따라

+0

감사합니다. 나는 apache camel에서 제공하는 낙타 프록시 예제를 시도해보고 실행할 수 있습니다. 낙타 컨텍스트가 정의 된 번들로 낙타를 설치했습니다. 그러나 나는 프로세스를 사용하려고 시도하고 교환 객체로부터 응답을 얻으려고 할 때 실패합니다. 카멜 문맥 i에서 정의 된 cxf : endpoint는 동일한 컨텍스트 파일에서 생성되고 기존 서비스에 "to"로 정의됩니다. "다음"프로세스 인터페이스를 구현하는 프로세스 bean을 참조하는 또 다른 "to"가 있습니다. 응답을 다시받을 수 없으며 디버그를 시도하고 교환 객체를 볼 때 응답의 흔적을 볼 수 없습니다. – Mr9

1

http://camel.apache.org/cxf-proxy-example.html를 참조하십시오.

스프링 사용 웹 응용 프로그램 내에 낙타를 묶은 경우 Camel에서 Spring-WS를 확인해보십시오. CXF보다 약간 가볍지 만 약간 제한적입니다. 그것은 귀하의 요구에 맞추어도 될 수 있습니다. http://camel.apache.org/spring-web-services.html

Spring-WS는 특정 WSDL에 실제로 바인딩하지 않고 오히려 특정 작업에만 바인딩됩니다. 이처럼 :

("봄-WS : rootqname : {http://example.com/} GetFoo endpointMapping = # endpointMapping")에서

.bean (prepareProxy) .TO ("봄-WS : HTTP : //foo.com/bar ") .bean (prepareAnswer);

필요한 대답을 변환하는 정도에 따라 Java 또는 XSLT 또는 다른 스크립팅 언어로 변환 할 수 있습니다. 그것은 맛의 문제입니다.

+0

응답 해 주셔서 감사합니다. 나는 apache camel에서 제공하는 낙타 프록시 예제를 시도해보고 실행할 수 있습니다. 낙타 컨텍스트가 정의 된 번들로 낙타를 설치하고 있습니다. 그러나 나는 프로세스를 사용하려고 시도하고 교환 객체로부터 응답을 얻으려고 할 때 실패합니다. – Mr9

관련 문제