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/