java调用webservice几种方式

来源:互联网 发布:优步司机登录网络错误 编辑:程序博客网 时间:2024/06/09 18:23

第一种:

android客户端调用

传进参数名与参数值调用方式

package androidWsTest;


import java.io.IOException;
import java.util.Map;
import java.util.Properties;


import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;


import com.alibaba.fastjson.JSONObject;
public class WebserviceUtil {
private String namespace="http://webservice.zgjkw.cn/";
private String webserviceUrl="http://localhost:8080/af/webservice/";
Properties properties;

public WebserviceUtil(){
}






/**

* @param namespace
* @param wsdlUrl example "mct?wsdl"
* @param methodName
* @param mehodParamName
* @param methodParam
* @return
*/
    public String getWebserviceResult(String wsdlUrl,String methodName,Map<String,Object> mapParams) {  
        SoapObject rpc = new SoapObject(namespace, methodName);
        
       // mapParams
        
        
        for (Map.Entry<String, Object> entry : mapParams.entrySet()) {
          rpc.addProperty(entry.getKey().toString(), entry.getValue());
        }
        
       
        
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);  
  
        envelope.setOutputSoapObject(rpc);
  
        HttpTransportSE transport = new HttpTransportSE(wsdlUrl);
        
        Object response = "null";
        String bakRst;
        try {
transport.call(null,envelope);
response = envelope.getResponse();
bakRst=response.toString();
} catch (IOException e) {
//Log.e("test_error", "IOException");
// Log.e("test_error", e.getMessage());
JSONObject retObj=new JSONObject();
retObj.put("success", false);
retObj.put("wserror", true);
bakRst=retObj.toJSONString();

} catch (XmlPullParserException e) {
//Log.e("test_error", "XmlPullParserException");
//Log.e("test_error", e.getMessage());
JSONObject retObj=new JSONObject();
retObj.put("success", false);
retObj.put("wserror", true);
bakRst=retObj.toJSONString();
}
  
        return bakRst;
    }

/**

* @param namespace
* @param wsdlUrl example "mct?wsdl"
* @param methodName
* @param mehodParamName
* @param methodParam
* @return
*/
    public String getWebserviceResult(String wsdlUrl,String methodName,String mehodParamName,String methodParam) {  
        SoapObject rpc = new SoapObject(namespace, methodName);
        
        
        rpc.addProperty(mehodParamName, methodParam);
        
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);  
  
        envelope.setOutputSoapObject(rpc);
  
        HttpTransportSE transport = new HttpTransportSE(webserviceUrl+wsdlUrl);
        
        Object response = "null";
        String bakRst;
        try {
transport.call(null,envelope);
response = envelope.getResponse();
bakRst=response.toString();
} catch (IOException e) {
//Log.e("test_error", "IOException");
JSONObject retObj=new JSONObject();
retObj.put("success", false);
retObj.put("wserror", true);
bakRst=retObj.toJSONString();

} catch (XmlPullParserException e) {
//Log.e("test_error", "XmlPullParserException");
JSONObject retObj=new JSONObject();
retObj.put("success", false);
retObj.put("wserror", true);
bakRst=retObj.toJSONString();
}
  
        return bakRst;
    }
}
调用:

package androidWsTest;


import java.util.HashMap;
import java.util.Map;


public class Test {


public static void main(String[] args) {
WebserviceUtil webserviceUtil=new WebserviceUtil();
Map<String, Object> mapParams=new HashMap<String, Object>();
mapParams.put("arg0", "崔雪峰");
String msg=webserviceUtil.getWebserviceResult("http://localhost:8080/af/webservice/hello?wsdl", "hello", mapParams);
System.out.println(msg);
}
}


第二种:

通过XFire的进行调用

package test;


import java.net.MalformedURLException;
import java.net.URL;


import org.codehaus.xfire.client.Client;


public class XfireClient {


/**
* @param args
*/
public static void main(String[] args) {
String wsUrlString = "http://localhost:8080/af/webservice/hello?wsdl";
// TODO Auto-generated method stub
try {
Client client = new Client(new URL(wsUrlString));//http://sw.zgjkw.cn/webservice/hello?wsdl
String reqString = "ww";
Object[] resObjects = client.invoke("hello", new Object[] {
"hehe"});
System.out.println(resObjects[0]);


} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}


}
第三种:

通过axis2的调用方式

package test;


import java.io.UnsupportedEncodingException;


import javax.xml.namespace.QName;


import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;


import com.bsoft.common.HospitalServletBean;
import com.bsoft.common.json.ObjectJSonUtil;


public class RPCClient2
{
  public static void testGetRecord()
    throws AxisFault, UnsupportedEncodingException
  {
    RPCServiceClient serviceClient = new RPCServiceClient();
    Options options = serviceClient.getOptions();
    EndpointReference targetEPR = new EndpointReference(
      "http://127.0.0.1:8088/webserviceframe/services/comutilServiceImpl?wsdl");
   
    options.setTo(targetEPR); 
    Object[] opAddEntryArgs = {"{gnbh:'H1020101'}"};
    Class[] classes = {String.class };
    QName opAddEntry = new QName("http://service", "hospital");
    String result = (String)serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0];
    System.out.println(result);
  }
  /**
   * 
   * @param args
   * @throws Exception
   */
  public static void main(String[] args)
    throws Exception
  {
       testGetRecord();
  }
}

第四种:

通过cxf客户端调用

package cn.zgjkw.aplipay.test;


import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;




public class CxfClient {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JaxWsDynamicClientFactory  factory =JaxWsDynamicClientFactory.newInstance();
   Client client =factory.createClient("http://localhost:8080/af/webservice/hello?wsdl");
   try {
    Object[] obj =client.invoke("hello","cuixuefeng");
  System.out.println("resp:"+obj[0]);
} catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
}


}

0 0
原创粉丝点击