2012-10-26 2 views
0

요청 측면에서 얻으려고 Port 객체를 BindingProvider로 캐스팅하지 않고 객체를 SOAPHandler에 전달하는 방법을 찾고 있습니다. 일반적으로 당신은 볼과 같은 코드 : 핸들러의 코드의 모습은 어디JAX-WS에서 캐스트하지 않고 객체를 SOAPHandler에 전달하십시오.

Map<String,Object> requestContext = ((BindingProvider)port).getRequestContext(); 
requestContext.put("key", object); 

는 :

내가로부터 호출을 래핑하는 Spring의 AOP를 사용하고 있기 때문에 나는 캐스트를 좋아하지 않는다 클라이언트 쪽 Port 개체가 반환되고 캐스트가 오류를 발생시킵니다.

+0

포트 클래스의 인터페이스 목록에'BindingProvider'를 추가 해보십시오. –

+0

이 개체는 생성 된 클래스이며,이 경우 다른 팀의 .jar 안에 패키징됩니다. 나는 그것을 바꿀 수 없다. – davidfmatheson

+0

Q에 대답하려고하면 간단한 정보를 줄 수 있습니까? SOAPHandler를 전달하려는 정보 유형 - 비즈니스 데이터, 구성 설정, 메모리 내 상태? 대부분의 개발자는 SOAPHandler (SAAJ)의 저수준 프로그래밍을 피하고 JAX-WS를 통해 코드를 생성 할 수 있다는 것을 알고 있습니까? SAAJ로 연결되는 낮은 수준의 요구 사항이 있습니까? :-) –

답변

1

2.5.6 이전 버전의 스프링을 사용하고 있습니까? 그렇다면 스프링을 업그레이드해야 할 수도 있습니다. 이 change log은 버전 2.5.6에서 BindingProvider 인터페이스에 대한 지원을 추가했음을 보여줍니다.

+0

아직 캐스팅해야하지만 충분히 가까워 야합니다. :) Spring 3.1을 사용하고 있는지 확인하여 JaxWsPortProxyFactoryBean에서 생성 된 프록시를 캐스트 할 수 있습니다. – davidfmatheson

관련 문제