一、创建webService服务。

采用appache提供的cxf开发webService服务,需要引入如下几个包

1、创建工程test

创建实体类

package hu.liu;

import lombok.Getter;
import lombok.Setter;

/**
 * @author 作者:David
 * @version 创建时间:2018年3月5日 下午3:09:46
 * 类说明 Info.java
 */
@Getter
@Setter
public class Info
{
    private Integer id;
    
    private String key;
    
    private String result;
}

创建接口:

package hu.liu;

import java.util.Map;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 * @author 作者:David
 * @version 创建时间:2018年3月5日 下午2:23:36
 * 类说明 IWebService.java
 */
@WebService 
public interface IWebService
{
    @WebMethod
    public String excute(@WebParam(name="param") String s);
    
    @WebMethod
    public String testString(Info param);
}

实现IWebService接口:

package hu.liu;
import java.util.Map;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
 * @author 作者:David
 * @version 创建时间:2018年3月5日 下午2:25:14
 * 类说明 WebServiceImp.java
 */
@WebService 
public class WebServiceImp implements IWebService
{
    @WebMethod
    @Override
    public String excute(@WebParam(name="param") String param)
    {
        System.out.println(param);
        Gson json = new Gson();//需要引入Gson包
        Info info = json.fromJson(param, new TypeToken<Info>(){}.getType());
        Integer id = info.getId();
        System.out.println(id);
        return "hello world!";
    }

@WebMethod
    @Override
    public String testString(Info param)
    {
        return "dddd";
    }
}

创建webService发布启动类:

package hu.liu;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
/**
 * @author 作者:David
 * @version 创建时间:2018年3月5日 下午2:25:48
 * 类说明 Launcher.java
 */
public class Launcher
{
    public static void main(String[] args)
    {
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        factory.setServiceClass(IWebService.class);  
        // 发布接口  
        factory.setAddress("http://localhost:9000/ws/" + IWebService.class.getSimpleName());  
        factory.setServiceBean(new WebServiceImp());  
        factory.create();
    }
}

至此一个简单的webService服务就已经发布成功了。

通过浏览器访问http://localhost:9000/ws/IWebService?wsdl 可以看到如下信息:

以上标注红色的是方法名及对应的参数。

二、创建客户端访问webService。

创建客户端工程,并引入与服务相同的包,且创建IWebService接口,接口的目录和服务端的一样,且方法一样。可以将服务端的接口打成jar包提供给客户端。

客户端调用代码如下:

package hu.liu;
import java.security.NoSuchAlgorithmException;
import java.util.Date;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.google.gson.Gson;
/**
 * @author 作者:David
 * @version 创建时间:2018年1月5日 下午3:59:37
 * 类说明 TestImp1.java
 */
public class TestImp1
{
    public static void main(String[] args) throws NoSuchAlgorithmException
    {
        JaxWsProxyFactoryBean  factoryBean=new JaxWsProxyFactoryBean();   
        /*factoryBean.getInInterceptors().add(new LoggingInInterceptor());   
        factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());  */ 
        factoryBean.setServiceClass(IWebService.class);   
        factoryBean.setAddress("http://localhost:9000/ws/IWebService?wsdl");   
        IWebService webService=(IWebService) factoryBean.create();   
        Gson gson = new Gson();
        Info info = new Info();
        info.setId(123);
        info.setResult("中国");
       /*sb.append("id=").append(info.getId());
        sb.append("&result=").append(info.getResult());
        info.setKey(new MD5Util().hashCode(sb.toString()));*/
        String s = gson.toJson(info);
        System.out.println(webService.excute(s));
    }
}

执行后如果没有意外应该有如下信息

客户端打印信息:4444444444444

服务端打印信息:123

至此整个webService从服务发布到客户端调用整个过程梳理完毕。

当然了,很多人在开发的时候只是负责开发服务端,不关心客户端的情况,这种时候如何通过webService测试软件进行接口测试呢。目前我使用的是Postman,谷歌提供的一个接口测试插件。

现在通过Postman测试以上发布的接口excute接口如下:

1、打开Postman界面如下:

设置Content-Type=text/xml

设置body请求调用的方法excute及对应的参数param

请求结果如下:

至此通过Postman进行webService接口测试测试完毕!

WebService发布与访问并通过Postman测试WebService接口相关推荐

  1. 开发避坑3——大鸟 pk Bug(使用postman测试POST接口遇到报错(ErrorMessage:Unauthorization request ......))

    使用postman测试POST接口遇到报错(ErrorMessage:Unauthorization request -) 不管你是前端.后端.测试还是运维等工程师,学会使用postman测试接口是工 ...

  2. [WebService] 使用postman测试webservice接口

    转载自: https://blog.csdn.net/qq_34869990/article/details/89678528 1.首先看一下webservice发布是否成功(注意在接下来的步骤中发布 ...

  3. Postman测试webService接口

    1.打开Postman界面如下: 设置Content-Type=text/xml 2.设置body 3.请求结果如下: 4.至此通过Postman进行webService接口测试测试完毕!

  4. 利用json+webservice实现android访问远程数据库,利用JSON+WebService实现Android访问远程数据库...

    2013年第9期SCIENCE&TECHNOLOGYINFORMATION ○IT论坛○科技信息 利用JSON+WebService实现Android访问远程数据库 黄淑静1杨红梅2 (1.山 ...

  5. postman测试https接口

    前一篇都配置了nginx支持https访问.我想也把https测试也好好写一下. 过程:给postman添加证书文件=>postman禁用https校验=>测试一个https请求 一.给p ...

  6. 如何用Postman测试整套接口?测试流程是什么?

    目录 基于postman测试接口(整套接口测试) 可以解决的问题 开启控制台 单个测试尝试 使用请求结果当参数 打印结果(JSON) 自定义可视化结果 随机参数 测试用例连接 一键测试接口集合 从sw ...

  7. postman测试restful接口

    there 一.postman简介 二.postman检测接口 2.1 测试接口 四.总结 一.postman简介 Postman 是一种常用的接口测试工具,可以发送几乎所有类型的HTTP请求.Pos ...

  8. postman 测试webservice接口

  9. 接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)

     目录 一.Postman背景介绍 二.Postman的操作环境 三.Postman重要提示: 四.什么是接口测试 五.接口测试工具 六.接口测试流程 七.接口测试执行 八.全局变量和环境变量 九.p ...

最新文章

  1. 《几何与代数导引》习题1.35.4
  2. android:怎样用一天时间,写出“飞机大战”这种游戏!(无框架-SurfaceView绘制)...
  3. Django--models一对多实例
  4. java常见面试题及答案 11-20(JVM篇)
  5. 可视化数据库管理工具DataGrip使用详解
  6. SharePoint 常见问题
  7. 多选题spss相关分析_【医学问卷分析】使用SPSS多重响应对医学问卷多选题进行统计分析——【杏花开医学统计】...
  8. 聊下并发和Tomcat线程数(错误更正)
  9. 三线压力传感器原理_电喷摩托车进气压力传感器原理与检测
  10. C# 注册dll的两种方式
  11. 关于数据的笑话 30 则
  12. (转)鲶鱼理论、鲶鱼效应
  13. 叶聪:朋友圈背后的计算机视觉技术与应用 1
  14. Linux软件防火墙:iptables
  15. 锁存器(latch)、触发器(flip-flop)、寄存器(register)的区别
  16. [工具]网络流量控制软件NetLimiter
  17. C#开发Android App--01--准备工具
  18. 向前努力,才能不堕落
  19. STM32初学者补足基础知识(第15讲-软件如何硬件)
  20. 8个零代码数据爬取工具,不会Python也能轻松爬数!(附教程)

热门文章

  1. mysql英文怎么发音_mysql5.5安装教程:mysql下载与安装
  2. CentOS远程连接不上,解决方案
  3. felayman——Ubuntu下搭建PHP开发环境
  4. 如何修改TIM聊天头像
  5. PPT(11)xiaobenny的PPT技能分享活动背景介绍
  6. Unity3D 游戏引擎之Unity3D回馈IOS高级界面消息 (十)
  7. winrar 压缩文件的图标不显示-解决办法
  8. 数字电路-与或非门应用
  9. Arduino - I2C通信协议(附.mlx90614红外温度传感器)
  10. 计算机考试文件命名,2010年职称计算机考试:文件的命名