原生java调用webservice的方法,不用生成客户端代码

原生java调用webservice的方法,不用生成客户端代码
  1. <span style="font-family: Arial, Helvetica, sans-serif;">package com.kingdee.eas.cp.trd.webservice.taskinter;</span>  
<span style="font-family: Arial, Helvetica, sans-serif;">package com.kingdee.eas.cp.trd.webservice.taskinter;</span>
  1. import java.rmi.RemoteException;  
  2.   
  3. import javax.xml.namespace.QName;  
  4. import javax.xml.rpc.ServiceException;  
  5.   
  6. import org.apache.axis.client.Call;  
  7. import org.apache.axis.client.Service;  
  8. import org.apache.axis.message.SOAPHeaderElement;  
  9.   
  10. import com.kingdee.bos.Context;  
  11. import com.kingdee.bos.webservice.login.WSContext;  
  12.   
  13. public class TaskInterUtil  
  14. {  
  15.     public static String getUserCreditFilesData(Context ctx,String userId)  
  16.     {  
  17.         try {  
  18.             Service s = new Service();  
  19.             Call call = (Call) s.createCall();  
  20.             call.setOperationName("login");  
  21.             call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl");  
  22.             call.setReturnType(new QName("urn:client", "WSContext"));  
  23.             call.setReturnClass(WSContext.class);  
  24.             call.setReturnQName(new QName("", "loginReturn"));  
  25.             call.setMaintainSession(true);  
  26.             String headerValue ;  
  27.             String headerNamePlace = "http://login.webservice.bos.kingdee.com";  
  28.             //                  WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",Integer.valueOf("2"),"BaseDB"}));  
  29.             WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",2}));  
  30.             String sessionid = result.getSessionId();  
  31.             System.out.println(sessionid);  
  32.             call.clearOperation();  
  33.   
  34.             //call = (Call)  new Service().createCall();,不能创建一个新的call  
  35.   
  36.             call.setOperationName("getUserCreditFilesData");  
  37. //          call.setOperationName("createJob");  
  38.             call.setMaintainSession(true);  
  39.             call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl");  
  40.             call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com","SessionId", sessionid));  
  41. //          boolean b =(Boolean) call.invoke(new Object[] { "111"});   
  42.             Object b = call.invoke(new Object[] { "bLXZIU9+SiuLKkJor2m9NhO33n8=", "", "", "", "", "", "", "10.0.55.5"});   
  43.             System.out.println("ssss");  
  44.         } catch (ServiceException e) {       
  45.             e.printStackTrace();        
  46.         } catch (RemoteException e) {   
  47.             e.printStackTrace();    }  
  48.           
  49.   
  50.           
  51.         return "";  
  52.     }  
  53. }  
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement;

import com.kingdee.bos.Context;
import com.kingdee.bos.webservice.login.WSContext;

public class TaskInterUtil
{
	public static String getUserCreditFilesData(Context ctx,String userId)
	{
		try {
			Service s = new Service();
			Call call = (Call) s.createCall();
			call.setOperationName("login");
			call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl");
			call.setReturnType(new QName("urn:client", "WSContext"));
			call.setReturnClass(WSContext.class);
			call.setReturnQName(new QName("", "loginReturn"));
			call.setMaintainSession(true);
			String headerValue ;
			String headerNamePlace = "http://login.webservice.bos.kingdee.com";
			//			        WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",Integer.valueOf("2"),"BaseDB"}));
			WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",2}));
			String sessionid = result.getSessionId();
			System.out.println(sessionid);
			call.clearOperation();

			//call = (Call)  new Service().createCall();,不能创建一个新的call

			call.setOperationName("getUserCreditFilesData");
//			call.setOperationName("createJob");
			call.setMaintainSession(true);
			call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl");
			call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com","SessionId", sessionid));
//			boolean b =(Boolean) call.invoke(new Object[] { "111"}); 
			Object b = call.invoke(new Object[] { "bLXZIU9+SiuLKkJor2m9NhO33n8=", "", "", "", "", "", "", "10.0.55.5"}); 
			System.out.println("ssss");
		} catch (ServiceException e) {     
			e.printStackTrace();      
		} catch (RemoteException e) { 
			e.printStackTrace();    }
		

		
		return "";
	}
}

2.

  1.         String result = null;  
  2.         try {    
  3.             Properties p = new Properties();  
  4.             String propertiesUrl = "com/kingdee/eas/fi/gl/client/propertie.properties";  
  5.             InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);  
  6.             p.load(ins);  
  7.   
  8.             String showImageUrl = p.getProperty("showImageUrl");  
  9.             //直接引用远程的wsdl文件    
  10.             //以下都是套路     
  11.             Service service = new Service();    
  12.             Call call = (Call) service.createCall();    
  13.             call.setTargetEndpointAddress(showImageUrl);    
  14.             call.setOperationName("imageOutSrv");//WSDL里面描述的接口名称    
  15.             call.addParameter("inJsonString", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数    
  16.             call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型      
  17.               
  18. //          companyNumber = "CWGX001";  
  19. //          voucherPeriod = "2015-08";  
  20. //          voucherTitle = "记字集团";  
  21. //          voucherCode = "WK06-0001";  
  22.               
  23.             String AppID = "EAS701";  
  24.             String Provider = "IMSSC";  
  25.               
  26.             StringBuffer param = new StringBuffer();  
  27.             param.append("  {                   ");  
  28.             param.append("      "Message":{                   ");  
  29.             param.append("          "Header":{                    ");  
  30.             param.append("              "AppID":""+AppID+"",                    ");  
  31.             param.append("              "Provider":""+Provider+""                   ");  
  32.             param.append("          },                  ");  
  33.             param.append("          "Body":{                  ");  
  34.             param.append("              "ACTION_METHOD":"showImage",                    ");  
  35.             param.append("              "PARAMS":{                    ");  
  36.             param.append("                  "COMPANY_CODE":""+companyNumber+"",                 ");  
  37.             param.append("                  "VOUCHER_PERIOD":""+voucherPeriod+"",                   ");  
  38.             param.append("                  "VOUCHER_TITLE":""+voucherTitle+"",                 ");  
  39.             param.append("                  "VOUCHER_CODE":""+voucherCode+""                    ");  
  40.             param.append("              }                   ");  
  41.             param.append("          }                   ");  
  42.             param.append("      }                   ");  
  43.             param.append("  }                   ");  
  44.   
  45.               
  46.             result = (String)call.invoke(new Object[]{param.toString()});    
  47.             //给方法传递参数,并且调用方法    
  48.             System.out.println("result is "+result);    
  49.         } catch (Exception e1) {    
  50.             e1.printStackTrace();    
  51.             MsgBox.showInfo("EAS核算凭证影像调阅接口调用失败");  
  52.             SysUtil.abort();  
  53.         }   
		String result = null;
		try {  
			Properties p = new Properties();
			String propertiesUrl = "com/kingdee/eas/fi/gl/client/propertie.properties";
			InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);
			p.load(ins);

			String showImageUrl = p.getProperty("showImageUrl");
			//直接引用远程的wsdl文件  
			//以下都是套路   
			Service service = new Service();  
			Call call = (Call) service.createCall();  
			call.setTargetEndpointAddress(showImageUrl);  
			call.setOperationName("imageOutSrv");//WSDL里面描述的接口名称  
			call.addParameter("inJsonString", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数  
			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型    
			
//			companyNumber = "CWGX001";
//			voucherPeriod = "2015-08";
//			voucherTitle = "记字集团";
//			voucherCode = "WK06-0001";
			
			String AppID = "EAS701";
			String Provider = "IMSSC";
			
			StringBuffer param = new StringBuffer();
			param.append("	{					");
			param.append("	    "Message":{					");
			param.append("	        "Header":{					");
			param.append("	            "AppID":""+AppID+"",					");
			param.append("	            "Provider":""+Provider+""					");
			param.append("	        },					");
			param.append("	        "Body":{					");
			param.append("	            "ACTION_METHOD":"showImage",					");
			param.append("	            "PARAMS":{					");
			param.append("	                "COMPANY_CODE":""+companyNumber+"",					");
			param.append("	                "VOUCHER_PERIOD":""+voucherPeriod+"",					");
			param.append("	                "VOUCHER_TITLE":""+voucherTitle+"",					");
			param.append("	                "VOUCHER_CODE":""+voucherCode+""					");
			param.append("	            }					");
			param.append("	        }					");
			param.append("	    }					");
			param.append("	}					");

			
			result = (String)call.invoke(new Object[]{param.toString()});  
			//给方法传递参数,并且调用方法  
			System.out.println("result is "+result);  
		} catch (Exception e1) {  
			e1.printStackTrace();  
			MsgBox.showInfo("EAS核算凭证影像调阅接口调用失败");
			SysUtil.abort();
		} 
原文地址:https://www.cnblogs.com/firstdream/p/9075773.html