您的位置:首页 > 编程语言 > Java开发

java调用webservice几种方式

2014-11-15 13:10 351 查看
第一种:

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

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: