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();
}
}
}
- java调用webservice几种方式
- Java调用WebService的几种方式
- Java调用.NET webservice方法的几种方式
- WebService客户端的几种调用方式
- 调用webService的几种方式
- 调用WebService的几种方式
- 调用webService的几种方式
- 调用webService的几种方式
- 调用webService的几种方式
- 调用WebService的几种方式
- java开发webservice的几种方式
- java开发webservice的几种方式
- Java开发webservice的几种方式
- java开发webservice的几种方式
- Java开发webservice的几种方式
- java开发webservice的几种方式
- java开发webservice的几种方式
- java开发webservice的几种方式
- 数据库索引原理
- 数论--素数筛选法与整数的素因子分解
- Minimum Inversion Number
- 6.3 理解矩阵背后的意义
- JavaScript Null和Undefined的区别
- java调用webservice几种方式
- 智能家居
- 根目录,子目录 and 当前目录的区别及解析
- 信息安全与BI
- 杭州奢侈品回收哪儿好
- 微信公众平台开发教程第20篇-新手解惑40则
- shell中的map使用
- cocos2d-x 安卓环境配置 -转
- 1.1 自话粒子群