webservice java接口远程调用

webservice

例如:java接口远程调用


文章目录

  • webservice
  • 一、使用步骤
    • 1引入Maven依赖
    • 2.读入数据
  • 总结

一、使用步骤

1引入Maven依赖

        <!-- axis 依赖开始 -->
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>axis</groupId>
            <artifactId>axis-jaxrpc</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.2</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.3</version>
        </dependency>
        <!-- axis 依赖结束 -->

2.读入数据

代码如下(示例):使用的url网络请求的数据。

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;


		public List<Map<String, String>> getSCUserInfoByUserId(String userId) {
		List<Map<String, String>> xmlStr = new ArrayList<>();
		try {
			//使用webService调用获取xml信息
			Service service = new Service();
			Call call = (Call) service.createCall();
			//设置接口url地址
			call.setTargetEndpointAddress("http://ip:port/uums/services/UserService?wsdl");
			//设置方法名
			call.setOperationName("getUserInfoByUserId");
			call.setTimeout(60000);
			//设置参数
			call.addParameter("userId", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
			call.addParameter("sessionId", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
			call.setUseSOAPAction(true);
			//设置参数值
			String reXmlDoc = (String) call.invoke(new Object[]{userId, ""});
			System.out.println(reXmlDoc);
			/**********************************解析xml***********************************/
			List<Map<String, String>> maps = WebServiceUtil.convertToMap(reXmlDoc,"");
			xmlStr = maps;
			System.out.println(maps.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			return xmlStr;
		}
	}

总结

使用代码调用之前先使用远程工具(postman、apiPost等)调用,如果调用成功但是代码却不成功,检查一下调用url地址、方法名、参数名称及参数值是否需要加密处理等。

你可能感兴趣的:(java,开发语言)