Trying to consume Coldfusion Web Service

bsousa

New member
Joined
May 20, 2008
Messages
2
Programming Experience
Beginner
Hi all,

I'm trying to consume a Service called GetMemberPointsAvailable using VB.NET. Here is the wsdl: http://sp-s3g-uat.iclp.com.au/ws/egapi/v1-0/egapi.cfc?wsdl

This service is written in coldfusion - axis engine.

I add the reference of the Web Service in visual studio, I call the Service, but I just can't receive any response from the web service - I receive an empty array (it seems like)...

Any help would be much appreciated!

Thanks in advance,
BS
 
It should be something like the code below:
VB.NET:
Dim client As New ServiceReference1.SportingWS '(or egapiClient in VB2008)
For Each item As ServiceReference1.mapItem In client.getMemberPointsAvailable("id", "password", "cardnumber")
    MsgBox(item.key & vbNewLine & item.value)
Next
 
Hi JohnH,

Thanks for you fast response. But I'm still getting the same problem...

I've used the code you sent, but still had the same result, which is a null array.

The steps:
I'm using VB.net on Visual Studio 2005. I created a new windows application project.

Then I added a web reference with URL http://sp-s3g-uat.iclp.com.au/ws/egapi/v1-0/egapi.cfc?wsdl and named the reference as webserviceICLP

Then i added a button on my form and put the following code on the button click event:

VB.NET:
        Dim client As New webserviceICLP.SportingWS 
        For Each item As webserviceICLP.mapItem In client.getMemberPointsAvailable("xxxxx", "yyyy", "123456789")
            MsgBox(item.key & vbNewLine & item.value)
        Next

It does nothing because (i think) there are no item created by the response of the webservice.
Also i tried to serialize the returning webservice message object using the following code:
VB.NET:
        Dim wsICLP As New webserviceICLP.SportingWS
        Dim MyParams() As webserviceICLP.mapItem = {New webserviceICLP.mapItem}
        MyParams = wsICLP.getMemberPointsAvailable("xxxxx", "yyyy", "123456789")
        MsgBox(SerializeToXML(MyParams))
            Public Shared Function SerializeToXML(Of T)(ByVal obj As T) As String
                        Dim returnXML As String = String.Empty         
            Dim serializer As New Serialization.XmlSerializer(GetType(T))
                    Using writer As New IO.StringWriter
                serializer.Serialize(New XmlTextWriter(writer), obj)
                        returnXML = writer.ToString()
            End Using
                    Return returnXML
            End Function
and the result i get is :



HTML:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfMapItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />


I know that the webservice is running because i tried to test it with the Soap UI tool and it did Ok. Here's the reponse of the WS:
HTML:
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' 
xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <soapenv:Body>
      <getMemberPointsAvailableResponse xmlns='http://v10.egapi.ws'>
         <getMemberPointsAvailableReturn xsi:type='ns1:Map' xmlns:ns1='http://xml.apache.org/xml-soap'>
            <item xmlns=''>
               <key xsi:type='xsd:string'>
                  RESPONSEERRORS
               </key>
               <value xsi:type='ns2:ArrayOf_xsd_anyType' xmlns:ns2='http://rpc.xml.coldfusion'/>
            </item>
            <item xmlns=''>
               <key xsi:type='xsd:string'>
                  RESPONSESUCCESS
               </key>
               <value xsi:type='xsd:string'>
                  true
               </value>
            </item>
            <item xmlns=''>
               <key xsi:type='xsd:string'>
                  RESPONSEDATA
               </key>
               <value xsi:type='ns1:Map'>
                  <item>
                     <key xsi:type='xsd:string'>
                        POINTS_AVAILABLE
                     </key>
                     <value xsi:type='xsd:int'>
                        106
                     </value>
                  </item>
               </value>
            </item>
         </getMemberPointsAvailableReturn>
      </getMemberPointsAvailableResponse>
   </soapenv:Body>
</soapenv:Envelope>
All the Best,
BS
 
Last edited by a moderator:
Back
Top