이전 기사에서는 WebService Tutorial (i)에 대한 자세한 설명을 소개했습니다.
도구를 사용해야하는 이유 :
1. 도구를 사용하여 웹 서비스 요청의 프로세스를 더 잘 이해합니다.
2. 도구 WSEXPLORE를 사용하여 SOAP 데이터 전송 및 수신의 형식을 얻으십시오.
3. 도구 TCP/IP 모니터를 사용하여 인터셉터 요청 헤더 및 응답 헤더의 특정 데이터를 모니터링합니다.
비누는 무엇입니까?
SOAP는 XML 인코딩 사양을 기반으로 한 텍스트 프로토콜입니다. 간단히 말해서, SOAP는 HTTP에서 XML 데이터를 전송하여 원격 통화를 실현하는 것입니다.
WSEXPLORER 인스턴스 사용 : QQ가 온라인 상태인지 확인하십시오
qqonlinewebservicesoap에서 qqcheckonline verification을 사용하는 경우, 반환 된 것은 IS입니다
QQCHECKONLINERESPONSE
QQCHECKONLINERESULT (String) : n
소스를 클릭하여 자세한 정보를 확인하면 정보가 다음과 같습니다.
1 : 이것은 메시지 형식입니다.
코드 사본은 다음과 같습니다.
http://schemas.xmlsoap.org/soap/envelope/ "xmlns : q0 ="http://webxml.cn/ "xmlns : xsd ="http://www.w3.org/2001/xmlschema " xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance">
-
-
870931520
2 : 다음은 수신 된 XML 형식입니다
코드 사본은 다음과 같습니다.
http://schemas.xmlsoap.org/soap/envelope/ "xmlns : xsd ="http://www.w3.org/2001/xmlschema "xmlns : xsi ="http://www.w3.org/2001/xmlschema-instance ">
-
-http://webxml.com.cn/ ">
N
QQONLINEWBSERVICEHTTPGET 또는 QQONLINEWBSERVICEHTTPPOST를 사용하는 경우 리턴 된 제품은 모두입니다.
nhttp : //webxml.com.cn/ "> n>
TCP/IP 모니터 사용
TCP/IP 모니터는 SOAP 데이터를 볼 수있을뿐만 아니라 HTTP 요청 및 수신에 대한 헤더 정보도 얻을 수 있습니다.
위치 :이 도구는 다음과 같습니다. Window> Show view> Other> MyClipse Common (Common Tools)> TCP/IP 모니터
2.이 도구는 에이전트와 동일합니다. 시작 후 로컬 포트를 듣고 요청을 지정된 대상 IP 및 포트로 전달합니다.
데이터를 얻은 후 데이터를 고객에게 그대로 반환하십시오. 고객의 눈에는이 에이전트가 항상 가장 먼저 액세스해야합니다. 그렇지 않으면 데이터 전송 프로세스가 보이지 않습니다.
3. 구성 옵션 :
열린 TCP/IP 모니터 인터페이스 :보기 메뉴 (오른쪽 상단의 작은 화살표)> 속성> 추가 (오른쪽 추가)
다음 속성으로 설정하십시오.
첫 번째 단계 :
1) 로컬 모니터링 포트 (로컬 포트 번호 듣기) : 9876, 마음대로 4 비트 포트 번호를 설정하고 http://127.0.1:9876의 형태로 액세스합니다.
2) 호스트 이름 (www.vevb.com과 같은 서버) : 127.0.0.1 시스템이 웹 서비스를 게시하기 때문에 기본 IP를 모니터링합니다. 호스트가 될 수도 있습니다.
3) 포트 (청취 할 대상 서버의 포트) : 6666- 우리가 게시 한 웹 서비스는 http://127.0.0.1:6666/helloworld, 6666이 듣는 포트 번호이기 때문입니다.
4) 유형 (청취 유형) :
-TCP/IP : 원래 주소는 사용자 입력과 같은 다음 요청에 계속 액세스하는 데 사용됩니다. http://127.0.1:9876/helloworld?wsdl은 이전과 같이 WSDL 서비스 액세스 주소로 돌아갑니다.
-HTTP : 대상 주소는 다음 요청에 계속 액세스합니다. 사용자 입력 : http://127.0.0.1:9876/helloworld?wsdl은 http://127.0.1:6666/helloworld를 사용하여 방법을 요청할 때 sayhi 메소드에 액세스합니다. 이 방법은 더 이상 근접하지 않습니다. 더 이상 듣는 포트 번호가 아니기 때문입니다.
청취 유형에서 TCP/IP를 선택한 다음 주소 표시 줄에서 http://127.0.0.1:9876/helloworld?wsdl을 입력하여 반환 된 WSDL 파일의 주소 변경을 확인했습니다.
시간 초과 : 액세스가 실패한 경우 연결 시간을 설정하고 0으로 유지하십시오. 즉, 설정되지 않았습니다.
설정 후 확인 버튼을 클릭 한 다음 오른쪽의 시작 버튼을 클릭하면 모니터링이 시작되었습니다.
Step 2:
myeclipse webservice에서 wsdl url을 구성하십시오. http://127.0.0.1:6666/helloworld?wsdl을 직접 방문하는 대신 게시
WSDL 파일의 내용을 수정하는 방법은 무엇입니까?
WebService의 주석을 사용하십시오.
1. @webservice-definition 서비스
2. @webmethod-definition 메소드
3. @Webresult-Definition 반환 값
4. @webparam-define 매개 변수
참고 : 다른 버전은 다른 수준의 주석을 지원합니다.
1. 1.5는 지원되지 않습니다.
2. 1.6.0_20 이전의 버전은 완전한 주석을 사용해야합니다.
3. 1.6.0_21 후에는 @webservice를 사용하여 클래스에 주석을 달 수 있습니다.
주석의 기능 :
WebService의 의견을 통해 웹 서비스를보다 생생하게 설명 할 수 있습니다. 이것은 WSDL 문서를 생성합니다.
웹 서비스 주석이 수정되면 클라이언트가 생성 한 코드도 영향을 미칩니다.
호출의 메소드와 매개 변수 이름도 변경되었습니다.
예:
@webservice (name = "myname", // 해당 porttype name = "myname"portname = "myport", // 해당 포트 이름 = "myport"servicename = "myservice", // 해당 서비스 이름 = "myservice"targetnamespace = "http://lefof.com/mynamespace")) // problace hlelling static 패키지 작성. simpledateformat sdf = new simpledateformat ( "yyyy-mm-dd hh : mm : ss"); @WebMethod (action = "myAction", // soapAction = "myAction"이 메소드를 실행하기 위해이 메소드를 찾으려면 "myOperationName") // 호출 할 수있는 메소드를 정의하고 해당 클래스의 특정 메소드가 생성됩니다. "Helloworld"; } @WebMethod (action = "mySayHiaction", operationName = "mySayHioPerationName") public @webresult (name = "mySayHireSult") String saysHi (@WebParam (이름 = "myParaname", // defaults = true, mode, mode, mode,). "hello :"+name+", 현재 시간은"+sdf.format (new date ()); Return str; } public static void main (String [] args) {endpoint.publish ( "http://127.0.0.1:6666/helloworld", New HelloWorld ()); }}3 : 위의 프로그램이 대중에게 공개 된 후 MyClipse의 Webservice Explorer를 통해 액세스 할 수 있습니다.
이전과 다른 프롬프트 메시지를 찾을 수 있지만 실제로는 동일한 방법이 여전히 호출됩니다.
4 : WSimport를 다시 사용하십시오. http://127.0.0.1:6666/helloworld?wsdl java 코드를 생성 한 다음 다음 호출은 호출 코드입니다 (인식 할 수없는 것으로 설명 될 수 있지만 동일한 작업이 수행됩니다).
패키지 com.leaf.mynamespace; public class main {public static void main (string [] args) {// wsdl을 분석하여 myService에서 getMyport 호출을 retuck myName myName = new myService (). getmyport (); // mySayHioperationName of myName String str = myname.mysayHioperationName ( "Wang Jian")을 통해 Sayhi 메소드를 호출합니다. System.err.println (str); }}Webservice Tutorial (ii)에 대한 자세한 설명 (ii) 먼저 여기에 소개하겠습니다. 도움이되기를 바랍니다.