웹서비스 4

Weblogic에서 Datahandler 첨부하는 방법

웹서비스 클라이언트는 보통 세가지 종류로 만들어진다. 사용 환경이나 목적에 따라서 Static Stub, Static Proxy, Dynamic Invocation Interface 를 사용한다. 어떤 것을 사용하던간에 jaxrpc의 Call, Service 인터페이스를 가져올 수 있는 것으로 보인다. 하여간 첨부를 하려면 해당 자료형을 변화하는 (De)Serializer가 필요하다, DataHandler에 대한 시리얼라이저는 따로 제공되지 않기 때문에, WAS에 있는 것을 사용해야한다. 시리얼라이저를 등록하기 위해서는 TypeMapping 인터페이스를 사용하면 된다. Service 인터페이스에서 TypeMappingRegistry 를 가져오고 TypeMappingRegistry에서 시리얼라이저를 QNa..

factory.createService 에서 Connot find service

위와 같은 메시지만을 보아도 확신을 가져야한다. 서비스를 찾을 수 없다는 말이다. 서비스는 Target namespace와 service name으로 찾는다. 이 두가지 값이 키가 되기 때문에 한글자라도 다른 것이 아닌가 확인해야한다. 그렇다면 뭐랑 비교 확인해야하는가? WSDL문서의 /wsdl:definitions/@targetNamespace, /wsdl:definitions/wsdl:service/@name 이다. 역시, 아무런 지식없이 시작하면 이런 간단한 것 조차 시간을 잡아먹는 요소가 된다.

SAAJ 클라이언트에 핸들러 등록하기.

SAAJ로 SOAPMessage를 생성하여 endPoint에 전송하는 코드가 있다. 이 코드에서 핸들러를 사용하려고 한다. 그러나 핸들러는 DII 타입의 클라이언트에서 등록하는 방법만 알고 있다. 여기저기 쑤셔본 결과, 딱히 등록한 위치는 못찾겠다. Handle 인터페이스의 모양새가 init 후 handleRequest, handleResponse 이므로 각각의 메서드를 그냥 호출하기로 했다. 특별한 이상없이 잘 작동하였으나, handleRequest의 파라미터가 MessageContext 이기 때문에 이 클래스의 인스턴스가 필요하다. SAAJ, JAXRPC 인터페이스로는 생성이 불가하고, AXIS에서 구현한 클래스(org.apache.axis.MessageContext)로 인스턴스를 생성할 수 있었다...

카테고리 없음 2007.01.04

AXIS2에서 JAX-RPC

어제 종일 AXIS 1.4에서 JAX-RPC 핸들러를 써볼려고 했는데, 결국에는 실패했다. 어떤분께서 AXIS2에서 해보는건 어떠냐는 의견을 주시길레 냉큼 시도해봤다. 가볍게 설치하고 서비스를 하나 추가할까 말까 하다가 바로 핸들러를 돌려볼려고 했는데. 글쎄, 아직 지원을 안한단다.. 물론 최종버젼은 지원할 예정이라지만은.. ;; 참고는 여기서 했다.