2014-09-16 2 views
0

잘 작동하는 웹 서비스가 있습니다. 이 서비스를 사용하기 위해 클라이언트를 구축하려고합니다.Apache CXF 2 웹 서비스 - 맞춤 서비스 위치

내 제한 사항은 내 호출이 로깅을 위해 프록시 서버 (타사 호스팅 제공 업체)를 거쳐야한다는 것입니다. 내 문제는 내가 WSDL 위치로 프록시를 지정할 수 있으며 그 잘 작동합니다.

http://[proxy ip address]/csp/sql/ws.Booking.BookingService2.cls?wsdl=1 

WSDL에 보여줍니다 :

<service name="Booking"> 
    <port name="BookingSoap" binding="s0:BookingSoap"> 
    <soap:address  location="https://alpha2.premier.com:443/ 
     csp/sql/ws.Booking.BookingService2.cls"/> 
    </port> 
    </service> 

나는이 서비스를 호출 할 내가 가진

프록시에서 내 WSDL 위치를 구성 : 반환되는 결과 WSDL은 원래 서비스 주소를 지정합니다 프록시 주소 (192.168.98.45)를 사용합니다.

누구든지 맞춤 서비스 위치를 호출하는 방법에 대해 알고 있습니까? 생성 된 CXF 코드에서 서비스 위치가 아닌 WSDL 위치 및 서비스 이름을 지정할 수 있습니다.

미리 감사드립니다.

al

답변

0

나는이를 위해 해결책을 찾았다.

바인딩 공급자 또는 포트에서 ENDPOINT_ADDRESS_PROPERTY가 변경되었습니다.

com.micro.bartws.booking.Booking ss = new com.micro.bartws.booking.Booking(wsdl);
BookingSoap port = ss.getBookingSoap(); /* Set NEW Endpoint Location */ String endpointURL = hubProperties.getProperty("intouchservicelocation"); BindingProvider bp = (BindingProvider)port; bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);

그래서 WSDL을 가져 우리가 종료 지점을 변경 afgter : 여기 CXF에 의해 생성 된 웹 서비스를 인스턴스화하는 내 코드입니다. IT는 대우를받습니다.

감사합니다.

관련 문제