WebService

Posted 小平1993

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebService相关的知识,希望对你有一定的参考价值。

1.介绍

  webservice主要解决两个系统两个应用程序间的远程调用,它提供了webapi方式访问,跨语言跨平台

2.原理

  webservice的客户端与服务端进行交互的时候使用xml来传递数据,

  soap协议,即简单对象访问协议,它是webservice的客户端与服务端进行交互的时候遵守的一个协议

3.方式

  通过jdk自带工具wsimport,根据服务说明书生成本地java代码,之后通过这个本地代码访问webservice

  wsimport -s . -p webservice http://127.0.0.1:8080/helloService?wsdl

  webservice:java文件下载到本地的文件夹位置(相对cmd命令位置)

  /helloService:提供调用的类文件名 

4.例子

  1)服务端

    1.1  IMyServer

package test;

import javax.jws.WebService;

@WebService
public interface IMyServer {
     public int add(int a,int b);
     public int minus(int a,int b);
}

    1.2 MyServerImpl 实现类

package test;

import javax.jws.WebService;

@WebService(endpointInterface="test.IMyServer")
public class MyServerImpl implements IMyServer{

    @Override
    public int add(int a, int b) {
        System.out.println(a+"+"+b+"="+(a+b));
        return a+b;
    }

    @Override
    public int minus(int a, int b) {
        System.out.println(a+"-"+b+"="+(a-b));
        return a-b;
    }

}

  3.主程序发布代码

package test;

import javax.xml.ws.Endpoint;

public class test {
    public static void main(String[] args){
        String address = "http://localhost:9999/ns";
        Endpoint.publish(address, new MyServerImpl());
    }
}

 

  2)客户端

    先使用wximport方式下载分享类及其关联类,在将java文件都复制到新客户端项目中

    调用

import testwebservice.IMyServer;
import testwebservice.MyServerImplService;

public class application {
    public static void main(String[] args){
        IMyServer myserver =new MyServerImplService().getMyServerImplPort();
        Integer result = myserver.add(2, 2);
        System.out.println(result);
    }
}

  5. 网络上很多wsdl资源可以获取别人资源

  http://www.webxml.com.cn/zh_cn/web_services.aspx

  获得手机归属地webservce:

  wsimport -s . -p lenve.test.phone http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

以上是关于WebService的主要内容,如果未能解决你的问题,请参考以下文章

C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

Java RMI地址解析问题

当我们在webservice.asmx.cs中编写所有代码时,webservice.asmx有啥用?

自动生成webservice客户端代码后怎么调用

在idea中,怎么生成cxf webservice的客户端代码

如何调用webservice接口 ajax