100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java使用axis实现webservice接口调用

java使用axis实现webservice接口调用

时间:2020-09-30 10:47:47

相关推荐

java使用axis实现webservice接口调用

看了很多博客,发现都是cp出来说明也不清楚。不是缺包就是少代码,一贴就不负责任。自己最后找到了方法,写一个比较完整的方法给大家提供。

确保webservice接口可以在网页进行访问,调用webservice接口之前都会确认。如图为可用

2. 可用之后开始编写代码

依赖如下:

<!-- /artifact/org.apache.axis/axis --><dependency><groupId>org.apache.axis</groupId><artifactId>axis</artifactId><version>1.4</version></dependency><!-- /artifact/javax.xml/jaxrpc-api --><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc-api</artifactId><version>1.1</version></dependency><!-- /artifact/commons-logging/commons-logging --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version></dependency><!-- /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 .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方法。查看日志,发现已经调通

其中有什么问题请留言会及时回复

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。