Java基础

IDEA开发WebService实例

2019-05-06  本文已影响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!
上一篇下一篇

猜你喜欢

热点阅读