博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java调用WebService
阅读量:6082 次
发布时间:2019-06-20

本文共 2543 字,大约阅读时间需要 8 分钟。

hot3.png

Java调用.net的WebService,因为对WebService不熟悉,搞了一天,终于搞完

package com.pansoft.jbsf.oa.controller;import java.rmi.RemoteException;import java.util.ArrayList;import java.util.List;import javax.xml.namespace.QName;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import com.jf.core.Controller;import com.pansoft.jbsf.bean.JsonResult;import com.pansoft.oa.untils.BussinessUtils;import net.sf.json.JSONObject;public class SSOLoginController extends  Controller{		public String getCurrentUserId(){		Object object = this.getRequest().getSession().getAttribute("usercode");//不能为空		if(object!=null){			return object.toString();		}else{			return "";		}	}	/**	 * 默认	 * @throws Exception 	 * */	public void index() throws Exception{		GetAuthenticationUser();	}	/**	 * 获取单点登录用户Token 	 * 解析用户信息	 * 判断用户是否存在	 * */	public void GetAuthenticationUser() throws org.apache.soap.SOAPException, ServiceException, RemoteException{		JsonResult result = new JsonResult();		String Token = getPara("Token");		JSONObject object = JSONObject.fromObject(Token);		String token = object.getString("Token");		String endpoint = "http://10.16.1.1/portal/sso.asmx";		Service service = new Service();		Call call = (Call) service.createCall();		call.setOperationName(new QName("http://tempuri.org/","GetAuthenticationUser"));		call.setTargetEndpointAddress(endpoint);		call.setEncodingStyle("UTF-8");		call.setUseSOAPAction(true);		call.setSOAPActionURI("http://tempuri.org/GetAuthenticationUser");		call.addParameter("SystemCode", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//接口的参数		call.addParameter("Secret", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//接口的参数		call.addParameter("Token", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);//接口的参数		call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 		String username = (String)call.invoke(new Object[]{"ZHXZFWPT","",token});		if(BussinessUtils.ifhavaUser(username)){//判读系统是否有该用户			result.setSuccess(true);			result.setData(username);		}else{			result.setSuccess(false);			List
message = new ArrayList
(); message.add("单点登录用户不存在!"); result.setMessage(message); } //给方法传递参数,并且调用方法 renderJson(result); }}

 

注意命名空间是      http://tempuri.org

方法名是                 GetAuthenticationUser

服务地址是              http://10.16.1.1/portal/sso.asmx

SOAPActionURI是           http://tempuri.org/GetAuthenticationUser

 

【SOAPActionURI】为啥是这个我也不懂~

转载于:https://my.oschina.net/glorylion/blog/744187

你可能感兴趣的文章
卸载双系统
查看>>
我的友情链接
查看>>
Eclipse设置:背景与字体大小和xml文件中字体大小调整
查看>>
Spring:源码解读Spring IOC原理
查看>>
RHCA-Memory
查看>>
VMware 克隆CentOS后无法启动网卡的解决
查看>>
关于Ubuntu不启动X,直接进入字符界面
查看>>
c#启动EXE文件(简单的)
查看>>
读书笔记20:中介者模式
查看>>
中间件笔记
查看>>
RHEL6.4_64安装(最全最细的安装过程)
查看>>
服务器硬件工程师从入门到精通视频教程-RAID篇发布了!
查看>>
colspan 属性
查看>>
zabbix安装
查看>>
replace into 与 select into 的区别
查看>>
当应聘者资历过高时
查看>>
Hyper-V 3 虚拟机快照之二 创建和查看快照
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
静态文件所需
查看>>