제목이 적절한지 모르겠지만...

우선 axis 엔진에서 기본적인 데이타형 이외에

Object들을 전달하기 위해서 조금 다른 방법이 필요하다..

이것을 테스트하기 위해서 다음과 같은 interface를 작성하였다.

more..



이 인터페이스를 상속받는 클래스..

more..



이렇게 작성후 WSDL2Java를 이용하여 배포하였다.

배포후 다른 서버에서 테스를 위해서 다음과 같은 jsp 파일을 작성하였다.

more..



WSDL2Java를 이용하여 파싱하는 결과 ReturnTest 클래스에서 정의한
모든 Operation.. 즉 Method가 생성되지는 않는다.

생성되는 Operation은
returnArray
returnArrayList
returnList
returnTestBean
returnVector

만이 생성되는것을 확인 할 수 있었다. (제 입장에서 가장 흔히 사용하는 것들로..)

그리고 각각의 타입을 확인하기가 어려웠다..
지금 확인된 것은 위 JSP에서 보여지는 TestBean을 받는 방법과
Vector을 받는 방법뿐이였다..

그리고 Bean 내부에서는 Java의 거의 모든 Collection 객체를 사용할 수 있는듯 하다..
(모든 Collection을 테스트해보지는 못했다..)

웹서비스를 받는 클라이언트 서버에서 호출하는 방법만 정의해보면

파라미터가 있다면 아래에 정의해서 넣으면 되고..
 Object[] params = new Object[] {  };
 call.setOperationName(new QName("wsdl명","메소드명"));
 QName qname = new QName("wsdl명", "wsdl에 정의된 complexType Name");
 call.registerTypeMapping(실제로 받는 클래스.class ,qname,
     org.apache.axis.encoding.ser.BeanSerializerFactory.class,
     org.apache.axis.encoding.ser.BeanDeserializerFactory.class );

 call.setReturnType(qname);
 실제로 받는 클래스 vector = (실제로 받는 클래스) call.invoke(params);

위처럼 호출하면 Bean 클래스로 선언된 클래스들은 받을수있다.

아직 생각하는 바로
org.apache.axis.encoding.ser.BeanSerializerFactory.class
org.apache.axis.encoding.ser.BeanDeserializerFactory.class
이 두 클래스 이외에 Serializer와 DeSerializer하는 클래스가 있을것으로 생각된다.

아니라면 이 두 클래스를 기반으로 만들어야 되겠다;;;;;;;;;;;;
(깜깜하다;;;)

크리에이티브 커먼즈 라이센스
Creative Commons License
Writer profile
author image
Posted by Mr.용
TAG

트랙백 주소 :: http://frok.info/man/trackback/179

  1. Subject: 알고 있던건데 왜 기억을 못할까? axis 정리..

    Tracked from 웃어라, 온세상이 너와 함께 웃을 것이다! 2007/07/12 16:35  삭제

    <font style ='font-size: 9pt; font-family: 957317_9;'>공 부 하 자 </font>

댓글을 달아 주세요

  1. vinyl bean bag chair 2008/03/13 06:24  댓글주소  수정/삭제  댓글쓰기

    이 위치는 유익한뿐 아니라 재미있는다!

  2. pregnant dollz 2008/03/13 07:12  댓글주소  수정/삭제  댓글쓰기

    좋은 위치! 너를 감사하십시요.