2010. 6. 25. 18:04
Web service server 는 Apache CXF로 구현하고, Client는 ASP로 운영을 하겠다고 하는데..
좀 더러운건.. Asp 테스트 프로그램까지 만들어 줘야 한다는거..
뭐 테스트를 위해서 찾게된 넘이 MSSOAP라는 넘이다. 요넘 뭐가 이렇게 복잡한지 처음에는 도통 알아 먹기가 힘든지 쩌ㅃ~
자 우선은 high, low level 로 구현할 수 있다고 하는데.. 뭐 당연히 상위레벨이 구현은 편하기는 하더라.. 대신 파라메터를 Object로 입력받으면 어쩔수 없이 하위레벨로 구현을 해야 한다.
밑에 넘이 하위 레벨로 구현한 넘이다.
<%
set Serializer = Server.CreateObject("MSSOAP.SoapSerializer30")
set Reader = Server.CreateObject("MSSOAP.SoapReader30")
Set Connector = Server.CreateObject("MSSOAP.HttpConnector30")
Connector.Property("EndPointURL") = "http://localhost:8080/star_map_sp/StarMapService/SOAP?wsdl"
Connector.Connect
Connector.Property("SoapAction") = "uri:KHAA01"
Connector.BeginMessage
Set Serializer = Server.CreateObject("MSSOAP.SoapSerializer30")
Serializer.Init Connector.InputStream
Serializer.StartEnvelope
Serializer.StartBody
Serializer.StartElement "MethodName" '요넘 이 메소드 명
Serializer.StartElement "RootElementName" ' XML root element
Serializer.StartElement "ElementName"
Serializer.WriteString "value"
Serializer.EndElement
Serializer.StartElement "ElementsName"
Serializer.WriteString "value"
Serializer.EndElement
Serializer.EndElement
Serializer.EndElement
Serializer.EndBody
Serializer.EndEnvelope
Connector.EndMessage
Reader.Load Connector.OutputStream
Set oNodeList = Reader.RPCParameter("KHAA01Res").childNodes
For x=1 to oNodeList.length
Set obj = oNodeList.Item(x-1)
if(obj.baseName = "test") then
Response.Write obj.baseName
Response.Write " : "
Response.Write obj.text
elseif(obj.baseName = "object") then
Response.Write "<BR><BR>"
Response.Write obj.baseName
Response.Write "<BR>"
Set childList = obj.childNodes
For i=1 to childList.length
Response.Write childList.Item(i-1).baseName
Response.Write " : "
Response.Write childList.Item(i-1).text
Response.Write "<BR>"
Next
end if
Response.Write "<BR>"
Next
%>
set Serializer = Server.CreateObject("MSSOAP.SoapSerializer30")
set Reader = Server.CreateObject("MSSOAP.SoapReader30")
Set Connector = Server.CreateObject("MSSOAP.HttpConnector30")
Connector.Property("EndPointURL") = "http://localhost:8080/star_map_sp/StarMapService/SOAP?wsdl"
Connector.Connect
Connector.Property("SoapAction") = "uri:KHAA01"
Connector.BeginMessage
Set Serializer = Server.CreateObject("MSSOAP.SoapSerializer30")
Serializer.Init Connector.InputStream
Serializer.StartEnvelope
Serializer.StartBody
Serializer.StartElement "MethodName" '요넘 이 메소드 명
Serializer.StartElement "RootElementName" ' XML root element
Serializer.StartElement "ElementName"
Serializer.WriteString "value"
Serializer.EndElement
Serializer.StartElement "ElementsName"
Serializer.WriteString "value"
Serializer.EndElement
Serializer.EndElement
Serializer.EndElement
Serializer.EndBody
Serializer.EndEnvelope
Connector.EndMessage
Reader.Load Connector.OutputStream
Set oNodeList = Reader.RPCParameter("KHAA01Res").childNodes
For x=1 to oNodeList.length
Set obj = oNodeList.Item(x-1)
if(obj.baseName = "test") then
Response.Write obj.baseName
Response.Write " : "
Response.Write obj.text
elseif(obj.baseName = "object") then
Response.Write "<BR><BR>"
Response.Write obj.baseName
Response.Write "<BR>"
Set childList = obj.childNodes
For i=1 to childList.length
Response.Write childList.Item(i-1).baseName
Response.Write " : "
Response.Write childList.Item(i-1).text
Response.Write "<BR>"
Next
end if
Response.Write "<BR>"
Next
%>
대충 보면 Connect로 URL과 메소드명을 설정하고, Serializer 로 입력 파라메터를 구현한다.
뭐.. 수신한 데이터는 알아서 사용하면 됨.
'VBS' 카테고리의 다른 글
[VBS] - BASE64 String to Image (0) | 2010.06.25 |
---|