WebService 자습서 설명(2)

6284 단어 webservice
지난 문장에서 모두에게 소개하였다WebService 자습서 상세 정보 (1)
도구를 사용하는 이유:
1. 도구를 사용하면 WebService 요청의 과정을 더욱 잘 이해할 수 있다
2. 도구 WsExplore를 사용하여 SOAP 데이터 전송 및 수신 형식 얻기
3. 툴 Tcp/Ip Monitor를 사용하여 차단기 요청 헤더와 응답 헤더의 구체적인 데이터를 모니터링
SOAP란 무엇입니까?
SOAP는 XML 인코딩 규범을 바탕으로 하는 텍스트 프로토콜입니다. 간단하게 말하면 SOAP는 HTTP를 바탕으로 XML 데이터를 전송하여 원격 호출을 실현합니다. [당신의 서버가 어떤 언어로 쓰든지 SOAP 프로토콜의 XML 데이터를 수신하고 SOAP 프로토콜의 XML 데이터를 되돌려주면 모든 언어로 호출될 수 있습니다.]
WsExplorer 인스턴스 사용: qq가 온라인 상태인지 확인
qqOnline Web Service Soap의 qqCheckOnLine 인증을 사용할 때 되돌아오는 것은
qqCheckOnlineResponse
qqCheckOnlineResult (string): N
source를 클릭하면 자세한 정보를 볼 수 있습니다. 정보는 다음과 같습니다.
1: 메시지 형식입니다.
http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://WebXml.com.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

采用qqOnlineWebServiceHttpGet或qqOnlineWebServiceHttpPost中的qqCheckOnline验证时,返回的都是

Nhttp://WebXml.com.cn/">N>

使用Tcp/Ip Monitor

TCP/IP Monitor不仅可以看到SOAP数据,还可以获取HTTP请求和接收的头信息。

1、位置:此工具位于:window>show view>other>MyEclipse Common(常用工具)>TCP/IP Monitor

2、此工具,相当于一个代理商,启动后它将监听本地的某个端口,然后再将请求转发给指定的目标IP和端口。
获取到数据后,再将数据原封不动的返回给客户。在客户看来,永远首先访问的都应该是这个代理,否则我们将看不到数据传输的过程。

3、 配置选项:

在打开的TCP/IP Monitor界面上:view Menu(右上方向下的小箭头)>Properties>Add(右侧添加)

设置成以下属性:

第一步:

1)local monitoring port(监听本地的端口号):9876,随意设置一个4位的端口号,一会将通过http://127.0.0.1:9876的形式访问

2)host name(要监听的服务器,如www.jb51.net):127.0.0.1 C因为本机发布了一个WebService所以监听本机IP.也可以是任意的主机。

3)Port(要监听的目标服务器的端口):6666 - 因为我们发布的WebService为http://127.0.0.1:6666/helloworld所以,6666是需要监听的端口号。

4)Type(监听的类型):
-- TCP/IP : 将使用原始地址继续访问下一个请求,如用户输入:http://127.0.0.1:9876/helloworld?wsdl此时将返回wsdl服务访问地址同前。

-- HTTP :将使用目标地址继续访问下一个请求。如用户输入: http://127.0.0.1:9876/helloworld?wsdl在请求方法时将使用http://127.0.0.1:6666/helloworld来访问sayHi方法。此种方式将不再会被代理。因为已经不是正在监听的端口号了。

在监听类型处,我选择了TCP/IP,然后通过在地址栏输入:http://127.0.0.1:9876/helloworld?wsdl,在返回的wsdl文件中查看:处地址的变化情况。

time out:设置访问不成功的连接时间,保持为0,即不设置。

在设置好后,点OK按扭,然后再点右方的Start按扭,监听便已经启动。

第二步:

在MyEclipse的WebService上配置WSDL URL为:http://127.0.0.1:9876/helloworld?wsdl,注意使用的是MyEclipse TCP/IP Monitor的端口。而不是直接去访问我们发布的http://127.0.0.1:6666/helloworld?wsdl

如何修改wsdl文件的内容?

使用WebService的注解。

1、 @WebService-定义服务

2、 @WebMethod-定义方法

3、 @WebResult-定义返回值

4、@WebParam-定义参数

注意:对于注解,不同的版本支持程度不相同:

1、1.5不支持.

2、1.6.0_20前版本必须使用完整注解.

3、1.6.0_21以后可以只使用@WebService对类进行注解.

注释的作用:

通过WebService的注解,可以更加形像的描述Web服务。从而生成WSDL文档。

当修改了WebService注解之后,同时会影响客户端生成的代码。

调用的方法名和参数名也发生了变化。

示例:


@WebService(name="myName",// portType name="myName" 
portName="myPort", // port name="myPort" 
serviceName="myService",// service name="myService" 
targetNamespace="http://leaf.com/mynamespace")// java package 
public class HelloWorld{ 
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
@WebMethod(action="myAction",// soapAction="myAction"  
operationName="myOperationName")// , ,operation name=".." 
public @WebResult(name="mySayHelloResult")String//  
sayHello(){ 
return "HelloWorld"; 
} 
@WebMethod(action="mySayHiAction",operationName="mySayHiOperationName") 
public @WebResult(name="mySayHiResult")String sayHi(@WebParam(name="myParaName", 
// , , body  
header=true, 
mode=Mode.IN) 
String name){ 
String str = " :"+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: 위의 프로그램을 외부에 발표한 후, 우리는 MyEclipse의 WebService Explorer를 통해 접근한다
너는 이전과 다른 알림 정보를 발견할 수 있지만, 사실은 여전히 호출된 것과 같은 방법이다.
4: wsimport Cs를 다시 사용합니다.http://127.0.0.1:6666/helloworld?wsdl자바 코드를 생성하고 호출합니다.
다음은 호출 코드입니다. (면목전비로 형용할 수 있지만 완성된 것은 같은 작업입니다.)

package com.leaf.mynamespace; 
public class Main { 
public static void main(String[] args) { 
// wsdl myService getMyPort myName 
MyName myName = new MyService().getMyPort(); 
// myName mySayHiOperationName sayHi  
String str = myName.mySayHiOperationName(" "); 
System.err.println(str); 
} 
}
Web Service 강좌에 대한 상세한 설명 (둘) 은 여러분에게 먼저 소개해 드리겠습니다. 여러분에게 도움이 되기를 바랍니다!

좋은 웹페이지 즐겨찾기