WebService接口调用

对接泛微的OA系统同步Employee和Department,好长时间没写WebService接口,留个记录第一步先要接口文档,看看接口能用不
接口地址进去页面有反应,后边拼接上?wsdl,出现xml例子就能用了
然后打开Eclipse新建一个web service client,把拼接有?wsdl的地址复制进去,然后选择生成文件的路径
生成之后,新建一个类测试一下;`

@RequestMapping(value="/testEmp.html")

  public String testEmp(HttpServletRequest request,HttpServletResponse  response, Model model) throws IOException{
  
	 GetBasicInfoSoapProxy getBasicInfoSoapProxy = new 		     
	 
	 GetBasicInfoSoapProxy("http://123:2001/ws/getbasicinfo.asmx?wsdl");
	 
	 String hrEmpInfoAll = getBasicInfoSoapProxy.getGetBasicInfoSoap().getHrEmpInfoAll();
	 
	 System.out.println(hrEmpInfoAll);
	 
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();// 1.建立DOM工厂
      
      DocumentBuilder builder = null;
      
        try {
        
            builder = factory.newDocumentBuilder();// 2.获得DOM解析器

            Document document = builder.parse(new InputSource(new ByteArrayInputStream(hrEmpInfoAll.getBytes("UTF-8"))));// 3.指定解析的文件路径,将XML文件在解析成DOM树
            NodeList Name = document.getElementsByTagName("Name");// 根据标签名获取获取所有该标签名的节点
            NodeList Sex = document.getElementsByTagName("Sex");// 根据标签名获取获取所有该标签名的节点

            NodeList EmpCode = document.getElementsByTagName("EmpCode");// 根据标签名获取获取所有该标签名的节点
            NodeList A011260 = document.getElementsByTagName("A011260");// 根据标签名获取获取所有该标签名的节点
            NodeList A01130 = document.getElementsByTagName("A01130");// 根据标签名获取获取所有该标签名的节点
            NodeList dCode =  document.getElementsByTagName("b01_dept_code");
            
            int length = Name.getLength();
            EmployeeBase emp = new EmployeeBase();
            HrAccount hrAccount = new HrAccount();
            Calendar instance = Calendar.getInstance();

            for (int i = 1; i < length; i++) {
            	emp.setUname(Name.item(i).getFirstChild().getTextContent());
            	emp.setUcode(EmpCode.item(i).getFirstChild().getTextContent());
            	emp.setSex(Long.valueOf(Sex.item(i).getFirstChild().getTextContent()));
            	//emp.setMobilePhone(Phone.item(i).getFirstChild().getTextContent());
            	if(A011260.item(i).getFirstChild().getTextContent().equals("1")){
	            	emp.setIsDelete(false);
            	}else{
	            	emp.setIsDelete(true);
            	}
          
            	emp.setDcode(dCode.item(i).getFirstChild().getTextContent());
            	emp.setBirthday(instance);
            	emp.setJoinCmaDate(instance);
            	emp.setJoinJobDate(instance);
            	emp.setAnnualLeave(0.00);
            	emp.setPolity("政治面貌");
            	baseInfoService.add(emp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
	 System.out.println(hrEmpInfoAll); 
	return hrEmpInfoAll;
}`

简单的接口调用完成了,但是当时测试时因为不在一个网络,测试时用的外网泛微的wsdl地址是一个域名,应该是没有注册,我所在的网络把这个域名屏蔽了,结果访问不通。后来把项目放到线上就可以正常使用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值