java使用axis实现webservice接口调用
看了很多博客,发现都是cp出来说明也不清楚。不是缺包就是少代码,一贴就不负责任。自己最后找到了方法,写一个比较完整的方法给大家提供。
- 确保webservice接口可以在网页进行访问,调用webservice接口之前都会确认。如图为可用
2. 可用之后开始编写代码
依赖如下:
<!-- https://mvnrepository.com/artifact/org.apache.axis/axis --><dependency><groupId>org.apache.axis</groupId><artifactId>axis</artifactId><version>1.4</version></dependency><!-- https://mvnrepository.com/artifact/javax.xml/jaxrpc-api --><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc-api</artifactId><version>1.1</version></dependency><!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency><!-- https://mvnrepository.com/artifact/commons-discovery/commons-discovery --><dependency><groupId>commons-discovery</groupId><artifactId>commons-discovery</artifactId><version>0.2</version></dependency>
代码如下
package com.sitech.miso.ecosp.util;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;public class WebServiceUtils {public static String callService(String serviceUrl,String methodName,Object [] args) {// 创建一个服务(service)调用(call)String ret="";try {Service service = new Service();// 通过service创建call对象Call call = (Call) service.createCall();// 设置service所在URLcall.setTargetEndpointAddress(new java.net.URL(serviceUrl));call.setOperationName(methodName);//设置访问的方法名ret = (String) call.invoke(args);// Object 数组封装了传递的参数System.out.println(ret);} catch (Exception e) {e.printStackTrace();}return ret;}public static String startWebService(String cs) {String res = "";try {res=callService("http://134.175.119.89:8981/YZFBusi/services/YZFBusiSOAP?wsdl","callService",new Object[]{cs});} catch (Exception e) {e.printStackTrace();}return res;}//请求串-xml格式 根据个人需求而拼接public static void main(String[] args) {StringBuffer sb = new StringBuffer();sb.append("<REQUEST>");sb.append("<PARAMS>");sb.append("<MESSAGETYPE>4001</MESSAGETYPE>");sb.append("<reqChannel>").append("100009").append("</reqChannel>");sb.append("<senttype>").append("2").append("</senttype>");sb.append("<merchantChannel>").append("3").append("</merchantChannel>");sb.append("<marketCfgId>").append("23124214").append("</marketCfgId>");sb.append("<firstMerchantId>").append("3214124").append("</firstMerchantId>");sb.append("<secondMerchantId>").append("dwq34214").append("</secondMerchantId>");sb.append("<thirdMerchantId></thirdMerchantId>");sb.append("<fourthMerchantId></fourthMerchantId>");sb.append("<fifthMerchantId></fifthMerchantId>");sb.append("<acceptTransSeqNo>").append("4124214124").append("</acceptTransSeqNo>"); //430 +时间到毫秒17 +10位sb.append("<oldacceptTransSeqNo>").append("").append("</oldacceptTransSeqNo>");sb.append("<marketChannel>").append("100001").append("</marketChannel>");sb.append("<outTxnType>").append("242341").append("</outTxnType>");sb.append("<supplyOrgCode>").append("dwq3e4124").append("</supplyOrgCode>");sb.append("<productNo>").append("124214125").append("</productNo>");sb.append("<rebateAmt>").append("12").append("</rebateAmt>");sb.append("<tradeType>").append("342525").append("</tradeType>");sb.append("<acceptTransDate>").append("3453521").append("</acceptTransDate>");sb.append("<acceptTransType>").append("21312421").append("</acceptTransType>");sb.append("<callbackURL>").append("324235").append("</callbackURL>");sb.append("<channelId></channelId>");sb.append("<clerkId></clerkId>");sb.append("<clerkBestpayId></clerkBestpayId>");sb.append("<saleProductId></saleProductId>");sb.append("</PARAMS>");String reqXML = sb.toString();String tmpStr =reqXML.substring(reqXML.indexOf("<PARAMS>")+8, reqXML.indexOf("</PARAMS>")).trim(); //不包括PARAMStmpStr = tmpStr+"wggrdfaebkcld";String sign = MD5Util.MD5Encode(tmpStr, "utf-8").toUpperCase();sb.append("<sign>"+sign+"</sign>");sb.append("<flag>1</flag>");sb.append("</REQUEST>");WebServiceUtils.startWebService(sb.toString());//调用接口}}
//a.这个里面的访问地址,方法名,对应的是我上篇博客的webservice参数,我简单介绍下,前面是webservice接口所部署的服务器网络Ip,servers路径,hello服务名,dockinfoInsert你要调用的接口的方法名,new Object[]{cs}放你传递的参数。// b.这个一般是接口的提供方会给出接口介绍文档,然后你根据文档就可以找到对应的路径,方法名。
测试:直接运行main方法。查看日志,发现已经调通
其中有什么问题请留言会及时回复
java使用axis实现webservice接口调用相关推荐
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...
近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...
- python发送soap报文_python用http发送soap报文进行webservice接口调用
最近学习了python用http发送soap报文进行webservice接口调用,从网上找了些资料,为了方便下次温习,在此留下代码片段,也望高手指点: #!/usr/bin/env python # ...
- Java: 聚合数据API接口调用城市天气预报
Java: 聚合数据API接口调用城市天气预报 点击进入[数据聚合_数据接口调用_开发者数据API开放平台](官网) 在pom文件中,加入依赖 <!--返回json数据--><dep ...
- 医院医生评价的java代码_基于JAVA的医院信息查询接口调用代码实例
基于JAVA的医院信息查询接口调用代码实例 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io ...
- Java 使用Axis实现WebService实例
在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...
- android开发接口调用,Android开发中webService接口调用示例
代码示例: package com.study.ws; import java.io.IOException; import org.ksoap2.SoapEnvelope; import org.k ...
- html调用天气预报wsdl服务,webservice接口调用天气预报例程
[实例简介] c# winform 调用公共天气预报webservice接口,初学者参考,大神忽略 [实例截图] [核心代码] WSTest └── WS Test └── WindowsFormsA ...
- java来电_JAVA来电显示接口调用代码实例
代码描述:基于JAVA的来电显示接口调用代码实例 关联数据:手机固话来电显示 接口地址:http://www.juhe.cn/docs/api/id/72 import java.io.Buffere ...
- 周易Java_基于JAVA的周易解梦接口调用代码实例
基于JA V A的周易解梦接口调用代码实例 代码描述:基于JA V A的周易解梦接口调用代码实例 代码平台:聚合数据 import java.io.BufferedReader; import jav ...
最新文章
- 一篇文章让你了解区块链技术的发展阶段
- Computational methods for analysis of single molecule sequencing data
- Java 调用Oracle的存储过程
- mysql大表join小表速度很慢_mysql多表join中,为什么子查询会那么慢,怎么解决-问答-阿里云开发者社区-阿里云...
- 米斯特白帽培训讲义(v2)漏洞篇 提权
- eclipse3.2 汉化 汉化包下载
- linux memcache端口占用,Linux: memcache的安装和启动、停止、重启, 检查memcache server是否开启...
- 题目29 英文输入法单词联想
- 有监督机器学习训练流程---人工智能工作笔记0015
- 查看office2016是不是永久激活状态
- cousera-usable security
- 七日杀服务器怎么修改天数,七日杀如何调整天数 | 手游网游页游攻略大全
- 【PR】调整音频的声音从大到小
- python 安装dmPython
- 账套输出时文件服务器错误,账套输出时提示:连接失败,运行时错误53,文件未找到...
- JS 中文数转数字练习
- 【flask扩展】Flask-Migrate的使用
- Camstudio-免费的屏幕录像软件中文版下载使用教程:
- Bson类似于Protocol Buffer的数据形式,比json更轻量级更高效
- 【华为OD机试真题 JAVA】找到它