|
@ -24,14 +24,14 @@ public class GatewayUtil {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 使用Axis Call Client动态调用WebService地址.
|
|
|
* 浣跨敤Axis Call Client鍔ㄦ€佽皟鐢╓ebService鍦板潃.
|
|
|
*
|
|
|
* @param webServiceAddr WebService地址
|
|
|
* @param webServiceMethod WebService方法
|
|
|
* @param webServiceAddr WebService鍦板潃
|
|
|
* @param webServiceMethod WebService鏂规硶
|
|
|
|
|
|
* @param inputValues 输入参数值
|
|
|
* @param inputValues 输入参数值
|
|
|
|
|
|
* @return 成功返回<code>Object</code>, 失败或异常返回null.
|
|
|
* @return 鎴愬姛杩斿洖<code>Object</code>, 澶辫触鎴栧紓甯歌繑鍥瀗ull.
|
|
|
*/
|
|
|
public static String getObjectByAxisCallClient(String webServiceAddr, String webServiceMethod,
|
|
|
Object[] inputValues) {
|
|
@ -39,10 +39,10 @@ public class GatewayUtil {
|
|
|
|
|
|
try {
|
|
|
|
|
|
Service service = new Service();
|
|
|
Service service = new Service();
|
|
|
call = (Call) service.createCall();
|
|
|
|
|
|
// 设置wsdl
|
|
|
// 璁剧疆wsdl
|
|
|
call.setTargetEndpointAddress(new URL(webServiceAddr));
|
|
|
|
|
|
// List pramerList = new ArrayList();
|
|
@ -53,39 +53,39 @@ public class GatewayUtil {
|
|
|
// myWebServicePramer.setPramerValue(dataXml);
|
|
|
// pramerList.add(myWebServicePramer);
|
|
|
|
|
|
// 设置访问的方法名
|
|
|
// 璁剧疆璁块棶鐨勬柟娉曞悕
|
|
|
call.setOperationName("service");
|
|
|
|
|
|
call.addParameter("authInfo", //参数名
|
|
|
XMLType.XSD_STRING,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("sequenceNo", //参数名
|
|
|
XMLType.XSD_STRING,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("api", //参数名
|
|
|
XMLType.XSD_STRING,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("param", //参数名
|
|
|
XMLType.XSD_STRING,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("paramType", //参数名
|
|
|
XMLType.XSD_INT,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("outType", //参数名
|
|
|
XMLType.XSD_INT,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("v", //参数名
|
|
|
XMLType.XSD_STRING,//参数类型:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
|
|
|
call.addParameter("out", XMLType.XSD_STRING,//参数类型:String
|
|
|
call.addParameter("authInfo", //参数名
|
|
|
XMLType.XSD_STRING,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("sequenceNo", //参数名
|
|
|
XMLType.XSD_STRING,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("api", //参数名
|
|
|
XMLType.XSD_STRING,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("param", //参数名
|
|
|
XMLType.XSD_STRING,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("paramType", //参数名
|
|
|
XMLType.XSD_INT,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("outType", //参数名
|
|
|
XMLType.XSD_INT,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
call.addParameter("v", //参数名
|
|
|
XMLType.XSD_STRING,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.IN);//参数模式:'IN' or 'OUT'
|
|
|
|
|
|
call.addParameter("out", XMLType.XSD_STRING,//鍙傛暟绫诲瀷:String
|
|
|
ParameterMode.OUT);
|
|
|
|
|
|
call.setReturnType((QName) XMLType.XSD_STRING);
|
|
|
|
|
|
String result=(String)call.invoke(inputValues);
|
|
|
return result;
|
|
|
// 定义参数对象
|
|
|
// 瀹氫箟鍙傛暟瀵硅薄
|
|
|
//call.setUseSOAPAction(true);
|
|
|
//call.setSOAPActionURI(soapActionURI + webServiceMethod);
|
|
|
|
|
@ -93,7 +93,7 @@ public class GatewayUtil {
|
|
|
// OperationDesc oper = new OperationDesc();
|
|
|
// if (!ArrayUtils.isEmpty(inputNames)) {
|
|
|
// for (int i = 0; i < inputNames.length; i++) {
|
|
|
// // String类型
|
|
|
// // String绫诲瀷
|
|
|
// oper.addParameter(new QName(targetNamespace, inputNames[i]), new QName(targetNamespace, inputXmlTypes[i]),
|
|
|
// inputJavaTypes[i], ParameterDesc.IN, false, false);
|
|
|
// }
|
|
@ -136,7 +136,7 @@ public class GatewayUtil {
|
|
|
// params.add(new BasicNameValuePair("paramType", "0"));
|
|
|
// params.add(new BasicNameValuePair("outType", "0"));
|
|
|
//
|
|
|
// //params.add(new BasicNameValuePair("mobileCode", "136370628")); //(注意这里的号码必须大于6位)
|
|
|
// //params.add(new BasicNameValuePair("mobileCode", "136370628")); //锛堟敞鎰忚繖閲岀殑鍙风爜蹇呴』澶т簬6浣嶏級
|
|
|
// //params.add(new BasicNameValuePair("userId", ""));
|
|
|
// request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
|
|
|
// HttpResponse httpResponse = new DefaultHttpClient().execute(request);
|
|
@ -149,29 +149,29 @@ public class GatewayUtil {
|
|
|
// }
|
|
|
// }
|
|
|
/**
|
|
|
* 使用Axis Call Client动态调用WebService地址.
|
|
|
* 浣跨敤Axis Call Client鍔ㄦ€佽皟鐢╓ebService鍦板潃.
|
|
|
*
|
|
|
* @param webServiceAddr WebService地址
|
|
|
* @param webserviceNamespace WebService的namespace
|
|
|
* @param webServiceMethod WebService方法
|
|
|
* @param inputValues 输入参数值
|
|
|
* @param inputValuetype 输入参数值类型
|
|
|
* @return 成功返回<code>Object</code>, 失败或异常返回null.
|
|
|
* @param webServiceAddr WebService鍦板潃
|
|
|
* @param webserviceNamespace WebService鐨刵amespace
|
|
|
* @param webServiceMethod WebService鏂规硶
|
|
|
* @param inputValues 输入参数值
|
|
|
* @param inputValuetype 输入参数值类型
|
|
|
* @return 鎴愬姛杩斿洖<code>Object</code>, 澶辫触鎴栧紓甯歌繑鍥瀗ull.
|
|
|
*/
|
|
|
public static String getObjectByAxis2CallClient(String webServiceAddr, String webserviceNamespace, String webServiceMethod,
|
|
|
Object[] inputValues, Class[] inputValuetype) {
|
|
|
Object[] inputValues, Class[] inputValuetype) {
|
|
|
|
|
|
try {
|
|
|
//新建RPC服务客户端
|
|
|
//新建RPC服务客户端
|
|
|
RPCServiceClient serviceClient = new RPCServiceClient();
|
|
|
Options options = serviceClient.getOptions();
|
|
|
//设置URL
|
|
|
//璁剧疆URL
|
|
|
EndpointReference targetEPR = new EndpointReference(webServiceAddr);
|
|
|
options.setTo(targetEPR);
|
|
|
//设置参数的类型
|
|
|
//设置namespace和方法名
|
|
|
//设置参数的类型
|
|
|
//璁剧疆namespace鍜屾柟娉曞悕
|
|
|
QName opAddEntry = new QName(webserviceNamespace, webServiceMethod);
|
|
|
//数组的第一个值为返回值
|
|
|
//数组的第一个值为返回值
|
|
|
return (String) (serviceClient.invokeBlocking(opAddEntry, inputValues, inputValuetype))[0];
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|