博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java动态调用webService,axis2动态调用webService
阅读量:7089 次
发布时间:2019-06-28

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

Java动态调用webService

axis2动态调用webService

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年12月15日 17:26:30 星期二

http://fanshuyao.iteye.com/

 

附件为代码压缩包

 

package com.chinagas.org.webservice;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import org.apache.axiom.soap.SOAP11Constants;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.client.ServiceClient;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;/** * webservice 调用封装 */public class WebServiceInvoker {	/**	 * 构建webservice请求参数	 * @param nameSpace 命名空间	 * @param params	 * @param paramValues	 * @param paramPrefix 参数前缀 	 * @param method	 * @param wsMethodPrefix 调用的方法前缀	 * @return	 */	private static OMElement buildParam(String nameSpace,String[] params, String[] paramValues,			String paramPrefix, String method, String wsMethodPrefix) {		OMFactory fac = OMAbstractFactory.getOMFactory();		OMNamespace omNs = fac.createOMNamespace(nameSpace, wsMethodPrefix); // 设置方法名前缀		OMNamespace omNsParam = (paramPrefix==null?null:fac.createOMNamespace(nameSpace, paramPrefix)); //设置参数前缀		OMElement data = fac.createOMElement(method, omNs); // 获得要调用的方法名		for(int i=0;i

 

 

使用方法如下:

Document doc = WebServiceInvoker.invoke(pushConfig.getPushUrl(),							pushConfig.getWsNameSpace(),							pushConfig.getWsHeaderNameSpace(),							pushConfig.getWsHeaderPrefix(),							pushConfig.getUserName(),							pushConfig.getUserPassword(),							new String[]{pushConfig.getParam()}, 							new String[]{jsonString}, 							pushConfig.getParamPrefix(),							pushConfig.getWsMethodName(),							pushConfig.getWsMethodPrefix()						);

 

 

自定义的一个配置实体类:

 

package com.chinagas.org.beans;import java.util.Date;import org.springframework.format.annotation.DateTimeFormat;// public class PushConfig{	//ID(通过序列:SEQ_PUSH_ID生成)	private Long pushId;	//推送名称	private String pushName;	//系统名称	private String systemName;	//推送地址	private String pushUrl;	//推送类型(ws,resful)	private String pushType;	//ws命名空间	private String wsNameSpace;	//ws调用方法名	private String wsMethodName;	//用户名	private String userName;	//密码	private String userPassword;	//请求参数	private String param;	//json类型)	private String jsonType;	//可用标识	private String enableFlag;	//	private Date createTime;	//	private Long createBy;	//	private Date modifyTime;	//	private Long modifyBy;	//备注	private String remark;	//头(Header)命名空间	private String wsHeaderNameSpace;	//头(Header)前缀	private String wsHeaderPrefix;	//方法前缀	private String wsMethodPrefix;	//参数前缀	private String paramPrefix;	//返回参数	private String paramReturn;				public Long getPushId() { 		return this.pushId; 	} 	public void setPushId(Long pushId) { 		this.pushId = pushId; 	} 			public String getPushName() {		return pushName;	}	public void setPushName(String pushName) {		this.pushName = pushName;	}	public String getSystemName() { 		return this.systemName; 	} 	public void setSystemName(String systemName) { 		this.systemName = systemName; 	} 			public String getPushUrl() { 		return this.pushUrl; 	} 	public void setPushUrl(String pushUrl) { 		this.pushUrl = pushUrl; 	} 			public String getPushType() { 		return this.pushType; 	} 	public void setPushType(String pushType) { 		this.pushType = pushType; 	} 			public String getWsNameSpace() {		return wsNameSpace;	}	public void setWsNameSpace(String wsNameSpace) {		this.wsNameSpace = wsNameSpace;	}	public String getWsMethodName() {		return wsMethodName;	}	public void setWsMethodName(String wsMethodName) {		this.wsMethodName = wsMethodName;	}	public String getUserName() {		return userName;	}	public void setUserName(String userName) {		this.userName = userName;	}	public String getUserPassword() {		return userPassword;	}	public void setUserPassword(String userPassword) {		this.userPassword = userPassword;	}	public String getParam() {		return param;	}	public void setParam(String param) {		this.param = param;	}	public String getJsonType() { 		return this.jsonType; 	} 	public void setJsonType(String jsonType) { 		this.jsonType = jsonType; 	} 			public String getEnableFlag() { 		return this.enableFlag; 	} 	public void setEnableFlag(String enableFlag) { 		this.enableFlag = enableFlag; 	} 			@DateTimeFormat	public Date getCreateTime() {		return createTime;	}	public void setCreateTime(Date createTime) {		this.createTime = createTime;	}	public Long getCreateBy() {		return createBy;	}	public void setCreateBy(Long createBy) {		this.createBy = createBy;	}	@DateTimeFormat	public Date getModifyTime() {		return modifyTime;	}	public void setModifyTime(Date modifyTime) {		this.modifyTime = modifyTime;	}	public Long getModifyBy() {		return modifyBy;	}	public void setModifyBy(Long modifyBy) {		this.modifyBy = modifyBy;	}	public String getRemark() { 		return this.remark; 	} 	public void setRemark(String remark) { 		this.remark = remark; 	}	public String getWsHeaderNameSpace() {		return wsHeaderNameSpace;	}	public void setWsHeaderNameSpace(String wsHeaderNameSpace) {		this.wsHeaderNameSpace = wsHeaderNameSpace;	}	public String getWsHeaderPrefix() {		return wsHeaderPrefix;	}	public void setWsHeaderPrefix(String wsHeaderPrefix) {		this.wsHeaderPrefix = wsHeaderPrefix;	}	public String getWsMethodPrefix() {		return wsMethodPrefix;	}	public void setWsMethodPrefix(String wsMethodPrefix) {		this.wsMethodPrefix = wsMethodPrefix;	}	public String getParamPrefix() {		return paramPrefix;	}	public void setParamPrefix(String paramPrefix) {		this.paramPrefix = paramPrefix;	}	public String getParamReturn() {		return paramReturn;	}	public void setParamReturn(String paramReturn) {		this.paramReturn = paramReturn;	}	@Override	public String toString() {		return "PushConfig [pushId=" + pushId + ", pushName=" + pushName				+ ", systemName=" + systemName + ", pushUrl=" + pushUrl				+ ", pushType=" + pushType + ", wsNameSpace=" + wsNameSpace				+ ", wsMethodName=" + wsMethodName + ", userName=" + userName				+ ", userPassword=" + userPassword + ", param=" + param				+ ", jsonType=" + jsonType + ", enableFlag=" + enableFlag				+ ", createTime=" + createTime + ", createBy=" + createBy				+ ", modifyTime=" + modifyTime + ", modifyBy=" + modifyBy				+ ", remark=" + remark + ", wsHeaderNameSpace="				+ wsHeaderNameSpace + ", wsHeaderPrefix=" + wsHeaderPrefix				+ ", wsMethodPrefix=" + wsMethodPrefix + ", paramPrefix="				+ paramPrefix + ", paramReturn=" + paramReturn + "]";	}			}

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年12月15日 17:26:30 星期二

http://fanshuyao.iteye.com/

 

转载于:https://www.cnblogs.com/fanshuyao/p/6227155.html

你可能感兴趣的文章
Android 属性动画(Property Animation) 全然解析 (下)
查看>>
推断汉字正則表達式更严谨方法!
查看>>
如何避免误删CleanMyMac语言文件
查看>>
Linux下免安装mysql
查看>>
快钱报错:javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name解决
查看>>
Hadoop集群WordCount运行详解(转)
查看>>
[转]SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
一次性搞清楚equals和hashCode
查看>>
Android Studio IDE的 LogCat如何过滤指定应用的调试信息
查看>>
23个常用正则表达式(数值和字符串)
查看>>
struts2中struts.xml配置文件详解
查看>>
Javascript中的with用法
查看>>
GIS-008-ArcGIS JS API 全图
查看>>
js splice方法
查看>>
Linux--多网卡的7种Bond模式
查看>>
ADO 连接数据库,取到VT_DATE型日期转换成 int型
查看>>
properties 配置文件中值换行的问题
查看>>
Azure 部署 Asp.NET Core Web App
查看>>
Masonry和FDTemplateLayoutCell 结合使用示例Demo
查看>>
linux 切换用户之后变成-bash-x.x$的解决方法
查看>>