zoukankan      html  css  js  c++  java
  • WebService

    1.简介

    WebService是用于设备或者程序之间用于通信的服务

    Web Service可以通过以下方式定义:

    • 是客户端服务器应用程序或应用程序组件进行通信
    • 网络上两个设备之间的通信方法。
    • 是一个可互操作的机器到机器通信的软件系统。
    • 是用于在两个设备或应用程序之间交换信息的标准或协议的集合。
    参考:https://www.yiibai.com/web_service/what-is-web-service.html

    从上图看到,如果是不同语言的程序之间通信就是通过WebService来实现的

    2.Java WebService分类

    JAX-WS:SOAP Web服务

    JAX-RS:RESTful Web服务

     3.JAX-WS示例

    JAX-WS又分为RPS和文档服务

    1.服务端应用程序

    (1)创建一个接口

    package test;
    
    import javax.jws.WebMethod;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    
    @WebService
    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
    public interface Function {
        @WebMethod
        public String tranWords(String words);
    }

    文档或者RPS只要在注解上声明即可

    (2)实现类方法

    package test;
    
    import javax.jws.WebService;
    import javax.xml.ws.Endpoint;
    
    @WebService(endpointInterface = "test.Function")
    public class FunctionImpl implements Function{
        @Override
        public String tranWords(String words) {
            String res="";
            for(char ch:words.toCharArray()){
                res+=ch+",";
            }
            return res;
        }
    
        public static void main(String[] args) {
            Endpoint.publish("http://localhost:8089/service/function",new FunctionImpl());
            System.out.println("Publish Success");
        }
    }

    运行main方法后,输入http://localhost:8089/service/function?wsdl的地址就可看到生成的wsdl文件

     2.客户端代码

    package test;
    
    import javax.xml.namespace.QName;
    import javax.xml.ws.Service;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class TestClient {
        public static void main(String[] args) throws MalformedURLException {
            URL url=new URL("http://localhost:8089/service/function?wsdl");
    
            QName qname=new QName("http://test/","FunctionImplService");
            Service service=Service.create(url,qname);
            Function function=service.getPort(Function.class);
            System.out.println(function.tranWords("ILOVEYOU"));
        }
    }

    运行得到:

  • 相关阅读:
    电路的耦合方式
    PCBA与PCB的区别
    vue记住密码功能
    数组变异
    element时间选择器插件转化为YYYY-MM-DD的形式
    box-shadow
    从后台传select的值
    jQuery事件(持续更新中)
    JavaScript对象(持续更新中)
    15分XX秒后订单自动关闭(倒计时)
  • 原文地址:https://www.cnblogs.com/wutongshu-master/p/11805543.html
Copyright © 2011-2022 走看看