Java Apache Axis2 웹 서비스 클라이언트 예제 고급
Axis2 클라이언트를 구성하고 사용하여 웹 서비스를 이용하는 방법을 보여주는 예제입니다 ServiceNow .
Axis는 기본적으로 클라이언트, 서버 또는 게이트웨이와 같은 SOAP 프로세서를 구성하기 위한 프레임워크인 SOAP 엔진입니다. Axis의 현재 버전은 Java로 작성되었습니다. 이 컨텐츠는 Java에서 가벼운 개발 배경을 가진 시스템 관리자를 대상으로 합니다. 시작하려면 Java JDK 버전 1.4.2 이상과 Axis2 버전 1.0 이상이 필요합니다.
Java 프로젝트 생성
이 예제에서는 소스 코드를 관리하고 웹 요청을 실행하기 위해 Eclipse SDK 버전 3.4.2를 사용합니다. Eclipse는 필요하지 않습니다.
- Eclipse를 열고 메뉴에서 .
- 프로젝트에 이름을 지정합니다.
- 올바른 JRE가 지정되어 있는지 확인합니다.
- wsdl2java를 사용하는 경우 명령줄에서 "java -version"을 실행하면 프로젝트 특정 JRE에 대해 지정할 버전이 됩니다.
- Axis2 Codegen 플러그인을 사용하는 경우 기본 JRE를 사용합니다.
Axis2 클라이언트 코드 생성
- 축 폴더의 bin 디렉터리에 있는 명령줄에서:
./wsdl2java.sh -uri https://<instance name>.service-now.com/incident.do?WSDL -o /glide/workspace/TestWebService/ - 위 예에서:
- "-uri"는 WSDL 복사본을 ".wsdl" 또는 ".xml"에 저장한 경로이거나 WSDL이 있는 URL입니다.
- "-o"는 파일을 쓸 경로입니다. 지정하지 않으면 파일이 현재 bin 위치에 기록됩니다.
- Eclipse에서 프로젝트를 새로 고치면 생성된 Stub 및 CallbackHandler가 표시되어야 합니다.
그림 1. 축 스텁
기본 인증
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 는 청크를 지원하지 않으므로 배포 시 또는 런타임에 청크를 비활성화해야 합니다.
- 배포 시간: HTTP 청크를 사용하지 않도록 설정하려면 Axis2.xml에서 다음 요소를 제거하거나 주석 처리하여 사용할 수 있습니다.
<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