WebService客户端(java)访问服务端(c++)

所需jar包:

WebService客户端(java)访问服务端(c++)_第1张图片

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();

//添加调用地址

call.setTargetEndpointAddress("http://192.168.1.102:10010/wscplus.wsdl");

// 设置调用的接口,指定输入参数,输出参数

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);

//定义返回值的格式,第一个参数为命名空间,第二个参数为返回值类型,这里需要注意的是返回值的类型是webservice开发商提供,我们需要与其保持一致

call.setReturnType(XMLType.XSD_STRING);

String str = "测试参数";

String strParam = new String(str.getBytes(Charset.forName("UTF-8")));

//进行调用传入对应入参的值,并且将返回的对象转换为字符串。

String result = (String)call.invoke(new Object[]{strParam});

String value = (String)call.invoke(new Object[]{strParam});

System.out.println("获取C++服务端返回值result为———— " + result+"______________"+"value为"+value);

}

catch (ServiceException e)

{

e.printStackTrace();

}

catch (RemoteException e)

{

System.out.println("服务器未启动");

}

}

}

你可能感兴趣的:(WebService客户端(java)访问服务端(c++))