[VB SOAP] Soap Toolkit Low-level API

Pagina: 1
Acties:

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Ik heb een VB applicatie met een form, button erop en de volgende code om de button af te handelen:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub btnSoap_Click()
    Dim Reader As New SoapReader30
    Dim WSDLReader As New WSDLReader30
    Dim WSDLPort As IWSDLPort
    Dim WSDLOperation As IWSDLOperation
    Dim Serializer As New SoapSerializer30
    Dim EnumSoapMappers As IEnumSoapMappers
    Dim Connector As ISoapConnector
    Set Connector = New HttpConnector30
    
    Reader.Load "d:\data\utils\src\soaptest\soap.xml", _
        "http://tempuri.org/Test/action/Dispatcher.Running"
    
    WSDLReader.Load "d:\data\utils\src\soaptest\Test.WSDL", _
        "d:\data\utils\src\soaptest\Test.wsml"
    WSDLReader.ParseRequest Reader, WSDLPort, WSDLOperation

    WSDLOperation.Load Reader, True
    WSDLOperation.GetOperationParts EnumSoapMappers
    WSDLOperation.ExecuteOperation Reader, Serializer
    
    Serializer.Init Connector.InputStream
End Sub

Ik wil uiteindelijk een proggie maken wat met de Low-level API van MS Soap Toolkit 3.0 standalone een SOAP request kan parsen en afhandelen.

Ik heb nu een COM object gemaakt met een methode 'Running' die een boolean teruggeeft. Dit COM object heb ik door de WSDL generator heengehaald en deze heeft netjes een WSDL- en WSML file gegenereerd. Ik ga er dus vanuit dat het probleem wat ik ga beschrijven daar niet zit.

Het probleem is nu het volgende: In de WSDLOperation die ik op regelnr 16 terugkrijg zijn de properties 'ObjectMethod' en 'ObjectProgId' beide leeg terwijl deze netjes in m'n WSML file vermeld staan. Hier komt het denk ik door dat, als ik op regel 20 de methode 'ExecuteOperation' aanroep, ik de melding 'Invalid procedure call or argument' krijg.

2 vragen:
1: wat doe ik fout?
2: heeft iemand een werkend voorbeeld van hoe ik dit gebruiken moet?

Verwijderd

Heb je al geprobeerd je webservice met een browser te runnen, om te kijken of dat werkelijk werkt?

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Yep, het is een bestaande webservice die ik nu in een standalone app wil afhandelen ipv via IIS.

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Niemand een idee :?

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Nou, nog 1x schop dan maar... :)

  • Wortelpudding
  • Registratie: Februari 2002
  • Niet online
Ok, ik heb het gevonden.

Nadat ik expliciet de property "LoadOnServer" van WSDLReader op True had gezet werkte het ineens goed.

dus:
Visual Basic:
1
WSDLReader.setProperty "LoadOnServer", True

doen voordat ik de WSDL en WSML files ga inlezen.
Pagina: 1