웹 서비스 작동 원리
다른 시스템에서 전달된 요청, 경량 독립 통신 기술. 예: SOAP를 통해 웹을 통해 전달되고 WSDL 파일을 사용하여 설명되며 UDDI를 통해 등록되는 소프트웨어 서비스입니다.
XML: (Extensible Markup Language) 확장 가능한 마크업 언어. 단기 임시 데이터 처리와 World Wide Web을 위한 Soap의 기반이 됩니다.
Soap: (Simple Object Access Protocol) 단순 객체 액세스 프로토콜. XML Web Service의 통신 프로토콜입니다. 사용자가 UDDI를 통해 WSDL 설명 문서를 찾으면 SOAP를 통해 생성된 웹 서비스에서 하나 이상의 작업을 호출할 수 있습니다. SOAP는 XML 문서 형식의 메서드 호출을 위한 사양으로, HTTP(S) 또는 SMTP와 같은 다양한 기본 인터페이스를 지원할 수 있습니다.
WSDL: (웹 서비스 기술 언어) WSDL 파일은 SOAP 메시지 세트와 이를 교환하는 방법을 설명하는 XML 문서입니다. 대부분의 경우 소프트웨어에 의해 자동으로 생성되고 사용됩니다.
UDDI(Universal Description, Discovery, and Integration)는 주로 웹 서비스 제공자와 사용자를 대상으로 하는 새로운 프로젝트입니다. 사용자는 웹 서비스를 호출하기 전에 서비스에 어떤 비즈니스 메소드가 포함되어 있는지 확인하고, 호출된 인터페이스 정의를 찾고, 서버 측에서 소프트웨어를 컴파일해야 합니다. UDDI는 시스템이 이를 기반으로 해당 서비스를 찾도록 안내하는 메커니즘입니다. 설명 문서. UDDI는 SOAP 메시징 메커니즘(표준 XML/HTTP)을 사용하여 등록 정보를 게시, 편집, 탐색 및 찾습니다. XML 형식을 사용하여 다양한 유형의 데이터를 캡슐화하여 등록 센터로 보내거나 등록 센터에서 필요한 데이터를 반환합니다.
2. 호출 원리
◆ 웹 서비스 제공자 설계 구현 웹 서비스 중개자를 통해 올바르게 디버깅된 웹 서비스를 게시하고 UDDI 등록 센터에 등록합니다.
◆ 웹 서비스 요청자는 웹 서비스 중개자, 즉 중개자에게 특정 서비스를 요청합니다. 요청에 따라 UDDI 등록센터에 질의하여 요청자의 요청에 맞는 서비스를 찾는다(Discovery)
◆ 웹 서비스 중개자는 조건을 만족하는 웹 서비스 설명 정보를 웹 서비스 요청자에게 반환한다. 설명 정보는 WSDL이 작성되어 웹 서비스를 지원하는 다양한 머신에서 읽을 수 있습니다(Discovery)
◆ 웹 서비스 중개자로부터 반환된 설명 정보를 사용하여 해당 SOAP 메시지를 생성하고 웹 서비스 제공자는 웹 서비스 호출을 구현한다. (Binding)
◆ 웹 서비스 제공자는 SOAP 메시지에 따라 해당 웹 서비스를 실행하고 서비스 결과를 웹 서비스 요청자에게 반환한다. (바인딩)
3. 호출 방법:
1 Net(C#)에서 GET/POST/SOAP를 사용하여 WebService를 동적으로 호출하는 간단하고 유연한 방법입니다. )
웹서비스를 호출하는 방법은 3가지가 있습니다
1).httpget
2).httppost
3)비누의 장점은 구조화된 데이터는 전달할 수 있지만 처음 두 데이터는 전달할 수 없습니다.
그런데 결국 비누는 HTTP를 사용하여 XM을 전송합니다
웹 서비스 인스턴스
단계:
1. 개발에 필요한 jar 패키지를 준비합니다. [apache-cxf-2.5 . 9 다운로드】
2. 웹 서비스 비즈니스 인터페이스를 개발하고 @WebService를 사용하여 메서드를 수정합니다.3. 이 메소드에 대한 구현 클래스를 작성하고 메소드를 @WebService로 지정해야 하며 다음은 구현할 인터페이스와 서비스 이름을 지정합니다.
4. 웹 서비스 기능을 노출합니다. 웹 서비스를 노출하는 기능을 실행합니다:
package com.ywx; import javax.jws.WebService; @WebService public interface HelloWorld { String sayHi(String name); }
그런 다음 브라우저를 실행하고 http://192.168.1.7/을 입력합니다. vashon?wsdl 결과를 확인하면 다음과 같은 wsdl 문서가 성공적으로 생성된 경우 웹 서비스가 성공적으로 노출되었음을 의미합니다.
package com.ywx.impl; import java.util.Date; import javax.jws.WebService; import com.ywx.HelloWorld; @WebService(endpointInterface="com.ywx.HelloWorld",serviceName="HelloWorldWs")//指定webservice所实现的接口以及服务名称 public class HellowWorlds implements HelloWorld{ @Override public String sayHi(String name) { return name+"您好!现在时间是:"+new Date(); } }
二、使用CXF开发Web Service客户端:
步骤:
1、新建一个客户端工程
2、调用CXF提供的wsdl2java工具或使用eclipse/myeclipse的new Web Service生成客户端代码(这里使用第二种方式):
输入wsdl链接:
点击next:
选择生成客户端代码的位置:
点击finish,生成客户端代码如下:
3、在客户端写测试类测试:
package com.ywx.test; import java.rmi.RemoteException; import com.ywx.HelloWorldProxy; public class TestService { public static void main(String args[]){ HelloWorldProxy h = new HelloWorldProxy(); try { String s = h.sayHi("yangwenxue"); System.out.println("调webservice:"+s); } catch (RemoteException e) { e.printStackTrace(); } } }
运行结果(传入一个参数,调用Web Service返回的字符串结果如下):
其调用生成的格式已经有服务端定义好了,看上面贴出来的代码或者下面的截图说明:
Web Service服务端和客户端工程结果截图如下:
更多웹서비스 작동 원리 및 예시相关文章请关注PHP中文网!