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();
}
}
}
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();
}
}
}
相关文章推荐
- [z]Java调用.NET webservice方法的几种方式
- Java调用.NET webservice方法的几种方式
- Java调用WebService的几种方式
- Java调用.NET webservice方法的几种方式
- Java开发webservice的几种方式
- 整理MINGW编译dll使用JNI被java调用的几种方式
- java 实现WebService 以及不同的调用方式
- java程序调用C、C++动态库的几种实现方式,即JNI的应用方式
- JAVA使用XFire开发Web Service客户端几种调用方式
- java开发webservice的几种方式
- java开发webservice的几种方式
- java调用.NET的webservice实例的二种方法soap方式axis模式
- java调用webservice两种常用方式
- java调用Myeclipse通过jax-ws方式搭建的webservice
- WebService客户端调用的几种方式
- JAVA 调用webservice方式
- JAVA使用XFire开发Web Service客户端几种调用方式
- java开发webservice的几种方式
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)