Java Apache Axis2 웹 서비스 클라이언트 예제 고급

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 3분
  • Axis2 클라이언트를 구성하고 사용하여 웹 서비스를 이용하는 방법을 보여주는 예제입니다 ServiceNow .

    Axis는 기본적으로 클라이언트, 서버 또는 게이트웨이와 같은 SOAP 프로세서를 구성하기 위한 프레임워크인 SOAP 엔진입니다. Axis의 현재 버전은 Java로 작성되었습니다. 이 콘텐츠는 Java에서 가벼운 개발 배경을 가진 시스템 관리자를 대상으로 합니다. 시작하려면 Java JDK 버전 1.4.2 이상 및 Axis2 버전 1.0 이상이 필요합니다.

    Java 프로젝트 작성

    이 예제에서는 소스 코드를 관리하고 웹 요청을 실행하기 위해 Eclipse SDK 버전(3.4.2)을 사용합니다. Eclipse는 필요하지 않습니다.
    • Eclipse를 열고 메뉴에서 파일 > 신규 > 프로젝트 > Java 프로젝트.
    • 프로젝트 이름을 지정합니다.
    • 올바른 JRE가 지정되었는지 확인하십시오.
      • wsdl2java를 사용하는 경우 명령 줄에서 "java -version"을 실행하면 프로젝트 특정 JRE에 대해 지정할 버전이 됩니다.
      • Axis2 Codegen 플러그인을 사용하는 경우 기본 JRE를 사용하십시오.
        그림 1. Java 프로젝트

    Axis2 클라이언트 코드 작성

    • axis 폴더의 bin 디렉토리에있는 명령 줄에서 :
      ./wsdl2java.sh -uri https://<instance name>.service-now.com/incident.do?WSDL -o /glide/workspace/TestWebService/
      
    • 위 예의 경우는 다음과 같습니다.
      • "-uri"는 wsdl 사본을 ".wsdl" 또는 ".xml"에 저장한 경로이거나 WSDL이 상주하는 URL입니다.
      • "-o"는 파일을 기록할 경로입니다. 지정하지 않으면 파일이 현재 빈 위치에 기록됩니다.
    • Eclipse에서 프로젝트를 새로 고치면 생성 된 Stub 및 CallbackHandler가 표시됩니다.
      그림 2. 축 스텁

    기본 인증

    HttpTransportProperties.Authenticator basicAuthentication  = new HttpTransportProperties. Authenticator ( ) ;
    basicAuthentication. setUsername ( "admin" ) ;
    basicAuthentication. setPassword ( "admin" ) ;
    ...
     ServiceNowStub proxy  = new ServiceNowStub ( ) ;
    ...
     
     proxy._getServiceClient ( ). getOptions ( ). setProperty (org. apache. axis2. transport. http. HTTPConstants. AUTHENTICATE, basicAuthentication ) ;

    Axis2 버전 1.1 이상과의 호환성

    청크 지원은 HTTP 버전 1.1에서만 사용할 수 있습니다. 기본적으로 청크는 버전 1.1 이상의 Axis2.xml에서 사용할 수 있습니다. ServiceNow 는 청크를 지원하지 않으므로 배포 시 또는 런타임에 청크를 비활성화해야 합니다.
    • 배포 시간: Axis2.xml에서 다음 요소를 제거하거나 주석 처리하여 HTTP 청크를 비활성화할 수 있습니다.
      <parameter name= "Transfer-Encoding" >chunked</parameter>
    • 런타임: 사용자는 클라이언트 또는 스텁 버전 1.1.1 이상에서만 설정된 다음 속성을 사용하여 청크를 비활성화할 수 있습니다.
      options.setProperty (org. apache. axis2. transport. http. HTTPConstants. CHUNKED,  Boolean. FALSE ) ;

    고유 패키지 작성

    Axis2 매개변수 namespace2package(ns2p)를 사용하여 고유한 패키지 이름을 작성할 수 있습니다. 매개변수는 다음 형식을 사용합니다.
    <Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p <namespace>=<package name> -uri <wsdl to convert>
    예:
    <Axis path>\bin\wsdl2java.bat -u -p cr2 -ns2p http://www.service-now.com/change_request=my.change_request -uri change_request