所需jar包:
package service;
import java.nio.charset.Charset;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
importorg.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
public class Ws {
public static void main(String[] args)
{
try
{
Service service = new Service();
Call call = (Call)service.createCall();
//添加調(diào)用地址
call.setTargetEndpointAddress("http://192.168.1.102:10010/wscplus.wsdl");
// 設(shè)置調(diào)用的接口,指定輸入?yún)?shù),輸出參數(shù)
call.setOperationName(new QName("urn:wscplus", "hellowebservice"));
call.addParameter("param", XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter("result", XMLType.XSD_STRING, ParameterMode.OUT);
call.addParameter("value", XMLType.XSD_STRING, ParameterMode.OUT);
//定義返回值的格式,第一個參數(shù)為命名空間,第二個參數(shù)為返回值類型,這里需要注意的是返回值的類型是webservice開發(fā)商提供,我們需要與其保持一致
call.setReturnType(XMLType.XSD_STRING);
String str = "測試參數(shù)";
String strParam = new String(str.getBytes(Charset.forName("UTF-8")));
//進(jìn)行調(diào)用傳入對應(yīng)入?yún)⒌闹担⑶覍⒎祷氐膶ο筠D(zhuǎn)換為字符串。
String result = (String)call.invoke(new Object[]{strParam});
String value = (String)call.invoke(new Object[]{strParam});
System.out.println("獲取C++服務(wù)端返回值result為———— " + result+"______________"+"value為"+value);
}
catch (ServiceException e)
{
e.printStackTrace();
}
catch (RemoteException e)
{
System.out.println("服務(wù)器未啟動");
}
}
}