이 예와 참조 기사의 차이점은 다음과 같습니다.
1) 배포.wsdd가 더 자세히 정의됩니다(인터페이스는 서버 측에 대해 정의됩니다: ICalculate).
다음과 같이 코드 코드를 복사합니다 .
<배포 xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="계산" 공급자="java:RPC" style="rpc" use="literal">
<parameter name="wsdlTargetNamespace" value="http://web.webservice.CalculateService.org" />
<parameter name="wsdlServiceElement" value="계산" />
<parameter name="wsdlServicePort" value="CalculateService" />
<parameter name="wsdlPortType" value="ICalculate" />
<parameter name="className" value="org.calculateservice.service.CalculateImp" />
<parameter name="typeMappingVersion" value="1.2" />
<parameter name="allowedMethods" value="하위 추가" />
<매개변수 이름="범위" 값="요청" />
<작업 이름="추가" qname="operNS:추가"
xmlns:operNS="http://web.webservice.CalculateService.org"
returnQName="addReturn" returnType="rtns:int" xmlns:rtns="http://www.w3.org/2001/XMLSchema"
비누액션="">
<매개변수 qname="x" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
<매개변수 qname="y" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
</조작>
<작업 이름="sub" qname="operNS:sub"
xmlns:operNS="http://web.webservice.CalculateService.org"
returnQName="subReturn" returnType="rtns:int" xmlns:rtns="http://www.w3.org/2001/XMLSchema"
비누액션="">
<매개변수 qname="x" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
<매개변수 qname="y" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
</조작>
</service>
</배포>
2) 사용자 정의된 AxisServlet: org.calculateservice.core.AxisServlet(.NET과 호환되며 SOAPACTION 검사 제거)
자세한 코드는 여기에 게시되어 있지 않습니다. 관심이 있는 경우 전체 샘플 코드를 직접 다운로드할 수 있습니다.
3) 호출 방법은 로컬 클래스를 사용하여 호출하는 것입니다(Java에서 WS를 호출하는 방법에는 세 가지가 있는 것 같습니다. 개인적으로 로컬 프록시 클래스를 사용하여 호출하는 것이 가장 합리적이고 읽기 쉽다고 생각합니다).
다음과 같이 코드 코드를 복사합니다 .
public static void main(String[] args)는 ServiceException, RemoteException을 발생시킵니다.
계산 계산 = new CalculateLocator();
int 결과 = 계산.getCalculateService().add(1, 2);
System.out.println("[%1 + 2 = " + 결과 + "%]");
}
WS를 게시/호출하는 주요 단계: 1) 다운로드한 리소스에 있는 axis1.4 설치 패키지의 webapp에 있는 axis 디렉터리를 tomcat의 webapp 디렉터리에 복사합니다.
2) WS 서버 구현 코드를 작성합니다.
3) WEB-INF 디렉터리에 배포.wsdd 배포 파일을 작성합니다.
4) 작성: generate-server-config.bat 스크립트를 생성한 다음, server-config.wsdd를 생성하고 웹 서비스를 게시하십시오.
5) 쓰기: 로컬 호출 클라이언트 코드를 생성하는 wsdl2java.bat 스크립트;
6) WS를 호출하는 테스트 코드를 작성합니다.
코드 구조 다이어그램:
클라이언트: WSDL2Java를 사용하여 wsdl을 기반으로 로컬 클라이언트 코드를 생성합니다.
core: .NET과 호환되고 SOAPACTION 검사를 제거하는 사용자 정의 AxisServlet입니다.
service: WS 서버 구현 코드(여기에서는 간단한 덧셈 및 뺄셈 계산이 예로 사용됩니다)
테스트: 생성된 클라이언트 클래스를 기반으로 서버를 호출합니다(생성된 코드의 서버 주소는 localhost입니다. 이 주소를 구성으로 변경해야 하는 경우 CalculateLocator 클래스에서 CalculateService_address 변수 할당을 수정하기만 하면 됩니다).
전체 예제를 다운로드하려면 클릭하세요.
리소스에는 샘플 전체 코드와 axis1.4 설치 파일이 포함되어 있습니다.