频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
WebService服务与客户端调用
2017-02-04 09:13:00         来源:Just的专栏  
收藏   我要投稿

WebService服务与客户端调用:一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序。

可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序
用于开发分布式的互操作的应用程序。

应用场景如,不用平台产品间接口调用,不同企业间接口调用

之前虽然一直又在写webService接口,但是没有关注到底是什么样的工作原理,这里小记一下。

简单实现

模拟学生成绩查询,服务端提供调用接口,客户端(第三方)通过webService查询

服务端接口和实现类编写

//接口
public interface StudentScore {
    public String getScoreById(String studentId);
}

//实现类
@WebService
public class StudentScoreImpl implements StudentScore {
    @Override
    public String getScoreById(String studentId) {
        out.print("获取学生成绩,学生id:"+ studentId);
        if("just".equalsIgnoreCase(studentId)){
            return "A";
        }else{
            return "B";
        }
    }
}

其中,实现类需要添加 @WebService注解

发布WebService服务

public class Service {

    /**
     * 开启,并发布webService服务
     * @param args
     */
    public static void main(String args[]){
        //定义webService地址: ip+port
        String addr = "https://127.0..0.1:3306/student";
        StudentScoreImpl studentScore = new StudentScoreImpl();
        //发布服务 地址+服务实现类
        Endpoint.publish(addr, studentScore);
    }
}

运行main方法,然后通过访问 https://127.0.0.1:3306/student?wsdl ,可以看到webService服务信息,如:Servcie调用方法


    
    
    

自动生成客户端执行类

目的,提供给第三方调用

方法,可以使用jdk自带的wsimport.exe的工具,常用命令参数:

参数 含义
-d 生成class文件存放目录
-s 生成java源码文件存放目录
-p 生成自定义包路径

例如,执行命令:

C:\Users\TCLDUSER>wsimport -d d:\ws-test\class -s d:\ws-test\java -p webs.studen
t https://127.0.0.1:3306/student?wsdl

关键点是 wsimport命令 以及参数wsdl地址

生成的文件如下:

客户端调用接口

将上一步生成的java源码文件可以copy至其他项目中进行使用

客户端调用代码:

import webs.student.StudentScoreImplService;

public class Client {
    public static void main(String args[]){
        System.out.println("客户端查询学生成绩信息");
        //调用自动生成的执行服务类
        StudentScoreImplService service = new StudentScoreImplService();
        //获取接口实现类
        webs.student.StudentScoreImpl studentScore = service.getStudentScoreImplPort();
        String score = studentScore.getScoreById("just");
        System.out.println(score);
    }
}

客户端输出日志:

客户端查询学生成绩信息
A

服务端输出日志:

获取学生成绩,学生id:just

当然,webService最大的优势在于使用xml传递参数信息,利用JavaBean与xml之间的互相转换来实现接口的调用。

使用CXF

在使用上,需要下载apache-cxf-2.7.18,然后添加cxf环境变量配置:
- CXF_HOME:D:\runtime\apache-cxf-2.7.18
- PTTH:%CXF_HOME%\bin;
- CLASSPATH:%CXF_HOME%/lib

转化命令 为 wsdl2java

点击复制链接 与好友分享!回本站首页
上一篇:git常用命令和步骤
下一篇:详解socket和tcp/ip协议
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站