WebService 자습서 상세 정보 (1)

7735 단어 webservice
웹 서비스는 응용 프로그램을 네트워크 응용 프로그램으로 변환할 수 있습니다.
웹 서비스를 사용하면 응용 프로그램이 전 세계에 정보를 발표하거나 기능을 제공할 수 있습니다.
웹 서비스는 다른 응용 프로그램에서 사용할 수 있습니다.
웹 서비스를 통해 회계 부서의 Windows 2k 서버는 IT 공급업체의 UNIX 서버와 연결할 수 있습니다.
기본 웹 서비스 플랫폼은 XML+HTTP입니다.
웹 서비스는 XML을 사용하여 데이터를 코딩하고 SOAP를 사용하여 데이터를 전송합니다.
웹 서비스
WebService는 말 그대로 웹 기반 서비스입니다.웹 (HTTP) 방식을 사용하여 외부 시스템의 요청을 수신하고 응답합니다.원격 호출을 실현합니다.
1: 웹 서비스의 작업 모델에서 이해하면 일반적인 웹 프로그램(예를 들어 ASP, JSP 등)과 본질적인 차이가 없고 모두 HTTP 전송 프로토콜을 바탕으로 하는 프로그램이다.
2: WebService에서 사용하는 데이터는 모두 XML 형식을 기반으로 합니다.현재 표준 웹 서비스는 데이터 형식에 있어서 주로 SOAP 프로토콜을 채택하고 있다.SOAP 프로토콜은 XML 인코딩 사양에 기반한 텍스트 프로토콜입니다.
웹 서비스 기술 지원
웹 서비스 플랫폼은 분산 응용 프로그램의 생성을 위한 프로토콜이 필요합니다.모든 플랫폼에는 데이터 표시 방법과 유형 시스템이 있다.상호작용성을 실현하려면 웹 서비스 플랫폼은 서로 다른 플랫폼, 프로그래밍 언어와 구성 요소 모델의 서로 다른 유형 시스템을 소통하는 표준적인 유형 시스템을 제공해야 한다.현재 이러한 계약은 다음과 같습니다.
XML 및 XSD
확장 가능한 태그 언어 XML은 웹 서비스 플랫폼에서 데이터를 나타내는 기본 형식입니다.구축이 쉽고 분석이 쉽다는 것을 제외하고 XML의 주요 장점은 플랫폼과 무관하고 제조업체와 무관하다는 데 있다.XML은 유니버설 네트워크 협회(W3C)가 만든 것으로 W3C가 제정한 XML SchemaXSD는 표준적인 데이터 형식을 정의하고 이 데이터 형식을 확장하는 언어를 제공한다.
웹 서비스 플랫폼은 데이터 유형 시스템으로 XSD를 사용합니다.어떤 언어로 VB처럼NET 또는 C#로 웹 서비스를 구성할 때 웹 서비스 표준에 부합하기 위해 사용하는 모든 데이터 형식은 XSD 형식으로 변환되어야 합니다.플랫폼과 소프트웨어의 조직에 따라 전달되도록 하려면 어떤 것으로 포장해야 한다.이런 것은 SOAP와 같은 협의의 일종이다.
SOAP
SOAP는 단순한 객체 액세스 프로토콜(Simple Object Access Protocal)로서 XML 인코딩 정보를 교환하는 경량급 프로토콜입니다.이것은 세 가지 주요 측면이 있다. XML-envelope는 정보 내용과 내용을 어떻게 처리하는지 설명하기 위해 프레임워크를 정의하고 프로그램 대상을 XML 대상으로 인코딩하는 규칙, 원격 프로세스 호출(RPC) 약속을 실행한다.SOAP는 다른 전송 프로토콜에서 실행될 수 있습니다.예를 들어 SMTP, 즉 인터넷 전자 우편 프로토콜을 사용하여 SOAP 메시지를 전달할 수 있는데 이것은 매우 유혹적이다.전송 레이어 간의 헤드는 다르지만 XML 유효 로드는 동일합니다.
Web Service는 서로 다른 시스템 간에'소프트웨어-소프트웨어 대화'방식으로 서로 호출할 수 있기를 희망하며, 소프트웨어 응용, 사이트와 각종 장치 간의 격식에 맞지 않는 상태를 타파하고'웹 기반 틈새 없는 통합'의 목표를 실현하고자 한다.
WSDL
웹 서비스 설명 언어 WSDL은 기계가 읽을 수 있는 방식으로 제공된 정식 설명 문서로 XML 기반의 언어로 웹 서비스와 그 함수, 매개 변수, 반환 값을 설명하는 데 사용된다.XML 기반이기 때문에 WSDL은 기계적으로 읽을 수 있는 것이고 사람이 읽을 수 있는 것이다.
UDDI
UDDI의 목적은 전자상거래를 위한 표준을 세우는 것이다.UDDI는 웹 기반, 분포식, 웹 서비스에 제공되는, 정보 등록 센터의 실현 표준 규범이며, 기업이 자신이 제공한 웹 서비스를 다른 기업이 발견할 수 있도록 등록할 수 있도록 하는 접근 프로토콜의 실현 기준도 포함한다.RPC 및 메시징 호출
웹 서비스 자체는 사실 응용 프로그램 간의 통신을 실현하는 것이다.현재 RPC 원격 프로세스 호출과 메시지 전송 등 두 가지 응용 프로그램 통신 방법이 있습니다.RPC를 사용할 때 클라이언트의 개념은 서버의 원격 프로세스를 호출하는 것이다. 일반적인 방식은 원격 대상을 실례화하고 그 방법과 속성을 호출하는 것이다.RPC 시스템은 위치의 투명성을 달성하려고 한다. 서버는 원격 대상의 인터페이스를 노출하고 클라이언트는 로컬에서 사용하는 대상의 인터페이스와 같다. 이렇게 하면 밑바닥의 정보를 숨기고 클라이언트도 대상이 어느 기기에 있는지 알 필요가 없다.
WebService는 어떻게 게시됩니까?
1、Jdk1.6.0_로21 이후 버전은 웹 서비스 서비스를 발표합니다.주소 표시줄을 통해 wsdl 문서를 보십시오.
2. wsimport를 통해 클라이언트 코드를 생성하고 실행 결과를 호출하고 확인합니다.(어떻게 호출하는지 습득하는 것이 우리의 중점이다.)
주의해야 할 것은, jdk1.6._07 이후 jdk 버전이 웹 서비스를 발표할 때 코드에 대한 설명을 완전하게 해야 합니다. jdk1.6.0_를 사용한다면21 이후 버전은 ws2.1을 포함하고 있기 때문에 클래스에 @WebService 주석만 추가할 수 있습니다.
다음은 두 세그먼트의 다른 코드입니다.
jdk1.6.0_13 버전에 발표된 ws:

package com.itcast; 
import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.jws.soap.SOAPBinding; 
import javax.jws.soap.SOAPBinding.Style; 
import javax.xml.ws.Endpoint; 
@WebService(targetNamespace="http://loalhost:9999/helloworld") 
@SOAPBinding(style=Style.RPC)// RPC  
public class HelloWorld { 
// @WebMethod ,  
@WebMethod 
public String sayHello(){ 
return "HelloWorld"; 
} 
public static void main(String[] args) { 
Endpoint.publish("http://localhost:9999/helloworld",new HelloWorld()); 
} 
} 
2: 다음은 jdk1.6.0_24에 게시된 WebService 코드:

package com.itcast; 
import javax.jws.WebService; 
import javax.xml.ws.Endpoint; 
@WebService// , , SOAP :DOCUMENT 
public class HelloWorld { 
public String sayHello(){ 
return "HelloWorld"; 
} 
public static void main(String[] args) { 
Endpoint.publish("http://localhost:9999/helloworld",new HelloWorld()); 
} 
}
첫 번째 WebService 서비스

package com.itcast; 
import javax.jws.WebService; 
import javax.xml.ws.Endpoint; 
/** 
*  WebService  
*/ 
// , WebService 
@WebService 
public class HelloWorld { 
public String sayHello(){ 
return "Hello World"; 
} 
// main , javax.xml.ws.Endpoint  
public static void main(String[] args) { 
Endpoint.publish("http://127.0.0.1:9999/helloworld", 
new HelloWorld()); 
} 
}
코드 설명: HelloWorld 클래스의 모든 비정적 공개 방법은 외부에 노출됩니다.
Wsimport 도구 설명:
 wsimport는 jdk가 자체로 가지고 있으며 wsdl 문서에 따라 클라이언트 호출 코드를 생성할 수 있는 도구입니다.물론 서버 측의 웹 서비스가 어떤 언어로 쓰였든지 간에 클라이언트에서 자바 코드를 생성할 것이다.서버 측이 무엇으로 썼는지는 중요하지 않다.
 wsimport.exe는 JAVA_HOME\bin 디렉토리 아래.
 일반 매개변수는 다음과 같습니다.
• -d<디렉토리> - 생성됩니다.class 파일.기본 매개변수입니다.
• -s<디렉토리> - 생성됩니다.java 파일.
• -p<생성된 새 가방 이름> - 생성된 클래스를 지정한 가방 아래에 놓습니다.
(wsdlurl) - http://server:port/service?wsdl, 필수 매개변수
사용:
1: 자바 Cversion을 통해 현재 버전 번호를 검사할 수 있습니다.버전이 너무 낮으면 높은 버전의 jdk를 설치할 수 있습니다.
또는 다른 사람이 이미 설치한 jdk 디렉터리를 당신의 기계에 직접 복사합니다. 예를 들어 D:\jdk1.6.0_24 목록 아래.
이전 환경 변수가 이전 버전의 jdk 디렉터리, 즉 JAVA_로 설정되었기 때문HOME과 PATH 두 환경 변수.
환경 변수를 다시 설정할 수 있습니다. JAVA_HOME=D:\jdk1.6.0_24,path=%JAVA_HOME%\bin,
환경 변수를 다시 설정한 후doc (명령줄) 창을 다시 열어야 합니다.비로소 효력이 발생한다.
원래 설정된 환경 변수를 수정하지 않으려면 명령줄 창에 다음 명령을 입력하여 jdk1.6.0_24 적용:
set path = D:\jdk1.6.0_24\bin;%PATH% (리턴하면 됨)
다시 자바 Cversion을 통해 jdk의 버전 번호가 변경되었는지 확인합니다.
2: 비교적 깨끗한 디렉터리로 이동합니다. 저는 d디스크에 ws라는 디렉터리를 새로 만들고 이 디렉터리로 이동합니다.
3: 웹 서비스를 엽니다.
4: 다음 명령을 입력합니다.
wsimport Cs . http://127.0.0.1:9999/helloworld?wsdl
매개 변수 설명: - s는 원본 코드 파일을 컴파일하는 것을 가리키며, 뒤에 있는 것을 가리킨다.(점) ⒋a를 앞눈 아래에 놓는 것을 가리킨다.
맨 뒤에 http...wsdl 설명서를 가져오는 주소입니다.
5:이때 생성됩니다.java 파일 및.class 파일.(모두 원본 패키지 이름이 포함되어 있음).코드를 프로젝트에 복사합니다.(자바 파일만 복사)
6: 새로운 프로젝트에서 새로운 클래스(임의의 패키지 아래에 위치할 수 있음), 위에서 생성한 코드를 호출합니다. 다음 페이지ppt.
7:wsimport 기타 매개 변수 설명, 우리가 자주 사용하는 매개 변수는 -d,-s,-p
-d<디렉토리>가 생성됩니다.class 파일.
예: wsimport Cd.http://127.0.0.1:9999/helloworld?wsdl
-s<디렉토리>가 생성됩니다.java 파일.
예: wsimport Cs.http://127.0.0.1:9999/helloworld?wsdl
-p<패키지 이름>에서 생성된 파일 (.java 또는.class에서 지정한 패키지 이름으로 수정)
예: wsimport -s. -p com.beijing.itcast http://127.0.0.1:9999/helloworld?wsdl
-p 매개 변수에 대해 패키지 이름의 수정을 주의하십시오. 이것은 생성된 클래스를 모두 -p를 통해 지정한 패키지 아래에 놓습니다.(프레젠테이션)
설명이 필요한 것은 -p 매개 변수만 사용할 때 -d를 동시에 사용하면 컴파일된다는 것이다.class 파일.Cd 매개 변수는 쓰거나 쓰지 않습니다. 그것은 모두 거기에 있습니다. 버리지 마십시오.
RunMain.java의 소스 코드는 다음과 같습니다.

package com.leaf; 
import com.itcast.HelloWorld; 
import com.itcast.HelloWorldService; 
/** 
*  ,  
*/ 
public class RunMain { 
public static void main(String[] args) { 
// HelloWorldSerice getHelloWorldPort  
HelloWorld helloWorld = 
new HelloWorldService().getHelloWorldPort(); 
String str = helloWorld.sayHello(); //  
System.err.println(str);// HelloWorld  
} 
} 
WebService와 일반 웹 프로그램의 차이
1. WebService는 HTTP POST 방식으로만 데이터를 전송하고 GET 방식은 사용하지 않습니다.
1) Tttp post의 contentType은
(1)application/x-www-form-urlencoded
2) WebService의 contentType은
(2) Text/xml soap1.1
(3) application/soap+xml Csoap1.2
2. WebService는 데이터 전송 형식에 한정되어 있습니다.
WebService에서 사용하는 데이터는 모두 XML 형식을 기반으로 합니다.현재 표준 웹 서비스는 데이터 형식에 있어서 주로 SOAP 프로토콜을 채택하고 있다.SOAP 프로토콜은 XML 인코딩 사양에 기반한 텍스트 프로토콜입니다.
웹 서비스와 웹 서버의 차이점:
우리는 웹 서비스를 웹 서버에서 응용하는 것으로 간주할 수 있다.반대로 웹 서버는 웹 서비스가 실행될 때 필요한 용기입니다.이것이 바로 그들의 차이와 관계다.
WebService의 특징:
1. WebService는 HTTP POST를 통해 고객의 요청을 수락합니다.
2. WebService와 클라이언트 간에 일반적으로 SOAP 프로토콜을 사용하여 XML 데이터를 전송합니다.
3. 그 자체가 플랫폼이나 언어를 뛰어넘기 위해 설계된 것이다.

좋은 웹페이지 즐겨찾기