WebService

Posted 程序不是生活的全部,但生活中一定要有程序

tags:

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

一、什么是Web服务

Web服务是一种可以用来解决跨网络应用集成问题的开发模式,目的是保证不同平台的应用服务可以互操作

二、Web服务的三个核心

Soap:

  SOAP(Simple Object Access Protocol,简单对象访问协议)是一个基于xml的协议,用于在分步的应用程序都可以识别。另外,SOAP本身没有定义任何程序语言,这使得SOAP能够以消息的形式传递到各种远程系统中。

  SOAP所使用的传输协议,可以是HTTP,SMTP,POP3,JMS。

  SOAP包括了4部分:

   01.“SOAP封装(Envelope)”:

定义一个描述信息描述的内容是什么,是谁发送的,谁应当处理他,以及如何处理他们的框架。

  02.“SOAP编码规则”:

 用于表示应用程序需要使用的数据类型的实例。

  03.“SOAP RPC":

 表示远程过程中调用和应答的协定。

  04.“SOPA绑定”:

  使用底层协议交换信息。

WSDL:

  WSDL(Web Service Description Language,web服务描述语言)是一个XML文档,他以一种和具体语言无关的抽象方式定义了给定web服务收发者的有关操作和消息。

UDDI:

UDDI(Universal Description Discovery and Integration,统一描述发现和集成协议)是一个规范,定义了与web服务相关的信息的发布,发现和管理。

三、JAX-WS

   JSX—WS(Java API for XML Web Service)。他是用来简化使用java构造web服务和web服务客户端的工作的技术。

四丶使用第三方代理调用webservice

 

五:使用java代码调用

在C盘根目录下生成文件夹(相应的字节码与.java文件)

将.java文件复制到MyEclipse中:

编写测试类:

package cn.happy.test;

import cn.com.webxml.MobileCodeWS;
import cn.com.webxml.MobileCodeWSSoap;

public class MyTest {
public static void main(String[] args) {
    MobileCodeWS ws=new MobileCodeWS();
    MobileCodeWSSoap soap = ws.getMobileCodeWSSoap();
    String mobileCodeInfo = soap.getMobileCodeInfo("", "");
    System.out.println(mobileCodeInfo);
}
}

测试结果:

 

 

方案三:使用JAX-WS发布服务

①定义服务器类以及方法[HelloService]

使用@WebService注解,标识一个java类或一个接口作为一个服务

/*
 * @WebService注解,标识一个java类或一个接口作为一个服务,一旦被标注@WebService,他就不是一个普通的
 * 接口,他被称作服务端点接口(Service Endpoint Interface)
 */
@WebService
public class HelloService {
 
    public void say(String name) {
        System.out.println("hello" + name);
    }
 
    public static void main(String[] args) {
        Endpoint.publish("http://192.168.0.2:40000/hello", new HelloService());
        System.out.println("server is listening...");
    }
}

 服务正在监听...

在浏览器中测试:

② 同理 cmd命令解析该文档的类或方法[客户端]

新建一个工程,运用这些类,进行测试

 

新建测试类:

public class MyTest {
public static void main(String[] args) {
    HelloServiceService service=new HelloServiceService();
    HelloService hs = service.getHelloServicePort();
    hs.say("小米");
}
}

 

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

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

Java RMI地址解析问题

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

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

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

如何调用webservice接口 ajax