您的位置:首页 > 编程语言 > Java开发

java使用axis2调用webservice接口实例

2017-10-17 11:08 661 查看
/**
* Project Name:uwx
* File Name:Axis2InterfaceUtils.java
* Package Name:com.net.util
* Author lc
* Date:2017年10月17日上午10:57:17
* Copyright (c) 2017, 武汉海云健康科技股份有限公司 All Rights Reserved.
*
*/

package com.net.util;

import java.util.Map;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

import com.google.common.collect.Maps;

/**
* ClassName:Axis2InterfaceUtils
* Function: TODO ADD FUNCTION.
* Reason:   TODO ADD REASON.
* Date:     2017年10月17日 上午10:57:17
* @author   lc
* @version
*/
public class Axis2InterfaceUtils {

public static String getRes(String xmlString, String callFunctionName){
try {
RPCServiceClient client = new RPCServiceClient ();
Options options = client.getOptions();

// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference("http://61.183.147.194:7008/hbgk_webservice_4.3.31/services/IncaInsiderService?wsdl");
options.setTo(targetEPR);
//options.setAction("命名空间/WS 方法名");
//          options.setAction("http://webservice.inca.com/IncaInsiderService");

// 指定IncaInsiderService方法的参数值
Object[] parmas = new Object[] { xmlString.toString()};
// 指定IncaInsiderService方法返回值的数据类型的Class对象
Class<?>[] classes = new Class[] { String.class };
// 指定要调用的IncaInsiderService方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://webservice.inca.com", callFunctionName);
// 调用IncaInsiderService方法并输出该方法的返回值
Object[] str = client.invokeBlocking(opAddEntry, parmas, classes);
return str[0].toString();
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

/**
* 返回xml数据
* @param response
* @param map
*/
public static String getXmlData(String bodyKey, Map<String, String> map) {
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.append("<"+bodyKey+">");
for(String key: map.keySet()) {
sb.append("<"+key+">" + map.get(key) + "</"+key+">");
}
sb.append("</"+bodyKey+">");

return sb.toString();
}

public static void main(String[] args) {
//xmlString的格式
Map<String, String> param = Maps.newHashMap();
param.put("Insidercardno", "H00000005");//卡号
param.put("Insidername", "测试1");//姓名
param.put("Sex", "1");//性别(1:男,2:女)
param.put("Mobile", "13698760000");//手机
param.put("Birthdate", "1988-01-01");//生日(格式: yyyy-mm-dd)
param.put("Mailaddress", "武汉");//地址

String xmlString = Axis2InterfaceUtils.getXmlData("InsiderModel", param);
//      System.out.println(xmlString);
System.out.println(Axis2InterfaceUtils.getRes(xmlString.toString(), "register"));
}

}


测试所需要的jar包可以到这里去下载:http://download.csdn.net/detail/xlb744868186/8301851
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: