美文网首页Java基础
IDEA开发WebService实例

IDEA开发WebService实例

作者: 白小纯呐 | 来源:发表于2019-05-06 15:54 被阅读107次

    本文适用于webservice 初学者,通过一个简单的webservice实例+调用讲解

    不知道什么是webservice的,去百度,简单来说就是个socket 接口服务,类似天气服务、手机归属地查询服务...

    下面我们自己来写一个webservice 接口

    1.打开idea ,新建一个java project,按下图勾选webservice,以及ApacheAxis

    2.填写工程名字,完成创建

    3.项目初始结构(有一个自动生成的Java类–HelloWorld)

    4.生成WSDL文件

        a.可以修生成的HelloWorld文件内容,我这里实现一个加法,代码如下:

      package example;

            public class HelloWorld {

                     public double add(double a,double b) {

                                return a + b;

                }

          }

    5.右键选择webservice ,生产wsdl 文件

    6.这时会发现在项目结构目录里多了一个HelloWorld.wsdl文件。

    7.配置Tomcat服务器,idel 没有装tomcat插件的自行百度安装,很简单

        a.选择Run > Edit Configurations,

    这时配置页面底部可能会显示有Warning:No Artifacts marked for deployment(警告:没有标记要部署的产物)。

    点击警告信息右侧的Fix…按钮切换到Deployment标签页。

    8.在出现的窗口中选择Project Settings > Artifacts,会到在新的警告信息。点击警告信息右侧的Fix…按钮,在弹出菜单里选择Add ‘JAX-WS-Apache Axis’ to the artifact。

    9.测试http://localhost:8081/services,

    http://localhost:8081/services/HelloWorld?wsdl

    6)编写客户端代码调用服务

    package test;

    import org.apache.axis.client.Call;

    import org.apache.axis.client.Service;

    import org.apache.axis.utils.StringUtils;

    public class CalculateClient {

    public static void main(String[] args) {

    // 指定调用WebService的URL(这里是我们发布后点击HelloWorld)

            String url = "http://localhost:8081/services/HelloWorld?wsdl";

    //调用的方法

            String method = "add";

    //调用方法的参数列表

            Object[] parms =new Object[]{2.0,3.0};

    CalculateClient calculateClient =new CalculateClient();

    //调用方法

            String svrAddResult = calculateClient.CallMethod(url, method, parms);

    System.out.println(svrAddResult);

    String svrMinusResult = calculateClient.CallMethod(url, "minus",new Object[]{5.0,2.0});

    System.out.println("5.0 - 2.0 is " + svrMinusResult);

    }

    //实现WebService上发布的服务调用

        public String CallMethod(String url,String method,Object[] args) {

    String result =null;

    if(StringUtils.isEmpty(url)) {

    return "url地址为空";

    }

    if(StringUtils.isEmpty(method)) {

    return "method地址为空";

    }

    Call rpcCall =null;

    try {

    //实例websevice调用实例

                Service webService =new Service();

    rpcCall = (Call) webService.createCall();

    rpcCall.setTargetEndpointAddress(new java.net.URL(url));

    rpcCall.setOperationName(method);

    //执行webservice方法

                double rslt = (double) rpcCall.invoke(args);

    result =String.valueOf(rslt);

    }catch (Exception e) {

    e.printStackTrace();

    }

    return result;

    }

    }

    10.运行测试类:

    成功ok!

    相关文章

      网友评论

        本文标题:IDEA开发WebService实例

        本文链接:https://www.haomeiwen.com/subject/inlroqtx.html