加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice 客户端 调用服务端 进行测试

发布时间:2020-12-16 22:13:02 所属栏目:安全 来源:网络整理
导读:两种方法: 一,使用jdk自带工具根据服务器地址,生成服务实体类接口 1,eclipse中新建一个项目, 2,使用jdk自带wsimport工具自动生成服务端java代码,打开dos窗口,输入 wsimport -keep?http://10.23.11.1:8080/webService/buildingEngService?wsdl 服务端j

两种方法:

一,使用jdk自带工具根据服务器地址,生成服务实体类接口

1,eclipse中新建一个项目,

2,使用jdk自带wsimport工具自动生成服务端java代码,打开dos窗口,输入 wsimport -keep?http://10.23.11.1:8080/webService/buildingEngService?wsdl


服务端java 代码回自动生成,在当前目录下,只复制两个文件即可。一个是接口BuildingEngService,一个是BuildingEngService_Service,

3,把生成的两个文件代码复制到项目中,

4,新建一个java测试类HelloService。

package com.je.ws;
 
import java.net.MalformedURLException;
import java.net.URL;
 
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
 
import cn.com.guodiantong.pb.webservice.server.base.service.BuildingEngService;
 
public class HelloService {
 
        public static void main(String[] args) {
            Service energyService;
            Class energyTargetInterface = BuildingEngService.class;
             
            String url = "http://10.113.11.1:9090/enocpService/buildingEngService";
            String targetNameSpace = "http://service.base.server.webservice.pb.guodiantong.com.cn/";
            String interService = "buildingEngService";
            String targetServicePort = "BuildingEngServicePort";
            try {
                energyService = Service.create(new URL(url),new QName(targetNameSpace,interService));
                QName  energyQname = new QName(targetNameSpace,targetServicePort);
                BuildingEngService energyPort = energyService.getPort(energyQname,energyTargetInterface);
                String json = "{"inputFlag":{"systemCode":"BENX","functionCode":"getElectricRecording"},"inputData":[{"deviceNumber":"T1001","electricQuant                            ity":"9784065.00","electricLoad":"2349.90","collectTime":"2016-01-11 14:30:00"}]}";
                String re = energyPort.getElectricRecording(json);
                System.out.println("result == "+ re);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
        }        
}

5,Run as java Application ?完成。


二,使用axis2生成客户端调用服务端****************************************************************************************************

1,eclipse新建一个工程

2,src下新建一个类:

package main;

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;

public class Axis2ClientTest {
	
	
	public static void main(String[] args) {
		RPCServiceClient serviceClient = null;  
	     try {  
	         serviceClient = new RPCServiceClient();  
	         Options options = serviceClient.getOptions();  
	         EndpointReference targetEPR = new EndpointReference("http://192.168.25.95:8080/emplatform/services/quZhouService");  
	         options.setTo(targetEPR);  
//	       命名空间 :targetNamespace = http://server.emplatform.gdt.com.cn,方法名称:name="queryCompanyRootId"  
	         QName opAddEntry = new QName("http://server.emplatform.gdt.com.cn","queryAbnormalDatas");  
//	       402880e450db5ad40150db8015fb0000 请求参数  
	         Object[] opAddEntryArgs = new Object[] { "ff808081537288e7015373160f790002","2016-03-25 17:46:37","2016-03-25 19:46:35" };  
	         Class[] classes = new Class[]{String.class};
	         String str = (String)serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs,classes)[0];  
	         System.out.println("调用完毕。。。str==。"+str);  
	     } catch (AxisFault e) {  
	         e.printStackTrace();  
	     }  	
	}
	
	 
}


所需要的jar包



axis2的所有jar包下载地址

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读