简单的webservice客户端测试代码

本文提供了一个简单的客户端代码示例,用于调用webservice并获取响应结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的代码描述了一个简单的客户端调用webservice的测试代码

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import com.demo.webservice.WebServiceParam;

/**
 * <p> Title: webservice测试公共类</p>
 * <p> Description: </p>
 * <p> Copyright: Copyright (c) 2012 2012-2-13</p>
 * <p> Company: pccw</p>
 * @author xuwh
 * @version 1.0
 */
public class WebServiceClientTest {
 
 public static void main(String args[])
 {
  // 服务端webservice地址
  String endpoint = "http://localhost:8080/sshdemo/services/UserWebService";

  // 定义服务端webservice调用的方法名称opName
  String opName = "getUserNameById";
  WebServiceParam[] params = new WebServiceParam[1];
  // 可以定义多个WebServiceParam对象表示多个参数
  WebServiceParam p1 = new WebServiceParam();
  // 定义服务端webservice调用方法的参数名称以及值
  p1.setParamName("userId");
  p1.setParamValue("402881cc3564decb01356510df090004");
  QName qName = org.apache.axis.encoding.XMLType.XSD_STRING;
  p1.setqName(qName);
  params[0] = p1;
  String str="";
  try {
   str = getStringByWebService(endpoint, opName, params);
   System.out.println("==webService Result==" + str);
  } catch (Exception e) {
   str = "异常";
   System.out.println("==webService error=str=" + str);
  }
 }

 /**
  * <p>
  * Description:调用返回值是string类型的webservice
  * <p>
  * @param endpoint
  * @param opName
  * @param params
  */
 public static String getStringByWebService(String endpoint, String opName,
   WebServiceParam[] params) throws Exception {
  try {
   String res = null;
   Service service = new Service();
   Call call = (Call) service.createCall();
   call.setTargetEndpointAddress(new java.net.URL(endpoint));
   for (int i = 0; i < params.length; i++) {
    call.addParameter(params[i].getParamName(), params[i].getqName(),
      javax.xml.rpc.ParameterMode.IN);
   }
   call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
   call.setOperationName(new QName("http://localhost:8080/sshdemo/services/" + opName,
     opName));
   call.setUseSOAPAction(true);
   //call.setSOAPActionURI("http://localhost:8080/sshdemo/services/" + opName + "/Rpc");
   call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
   Object o[] = new Object[params.length];
   for (int i = 0; i < params.length; i++) {
    o[i] = params[i].getParamValue();
   }
   res = (String) call.invoke(o);
   return res;
  } catch (Exception e) {
   throw e;
  }

 }

}

 

 

 

/**
 * <p> Title: 调用webservice的参数配置对象</p>
 * <p> Description: </p>
 * <p> Copyright: Copyright (c) 2012 2012-2-13</p>

 * @version 1.0
 */

public class WebServiceParam {
 private String paramName;
 private Object paramValue;
 private QName qName;
 
 public WebServiceParam(){}

 public WebServiceParam(String paramName,String paramValue,QName qName){
  this.paramName = paramName;
  this.paramValue = paramValue;
  this.qName = qName;
 }
 
 
 public QName getqName() {
  return qName;
 }

 public void setqName(QName qName) {
  this.qName = qName;
 }

 public String getParamName() {
  return paramName;
 }

 public void setParamName(String paramName) {
  this.paramName = paramName;
 }

 public Object getParamValue() {
  return paramValue;
 }

 public void setParamValue(Object paramValue) {
  this.paramValue = paramValue;
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值