Asynchrone berichten ontvangen

5 reacties / 0 nieuw
Freek van der Toorn
Asynchrone berichten ontvangen

Wij zijn op dit moment bezig StUF-BG0310 te implementeren en we zijn nu op een punt dat we (vraag) berichten kunnen versturen en daarop antwoord ontvangen.

Alleen loop ik nu aan tegen het implementeren van het ontvangen van asynchrone berichten, bijvoorbeeld na het plaatsen van een afnemer indicatie voor een natuurlijkpersoon willen we in de toekomst asynchrone berichten kunnen ontvangen als er iets wijzigt voor deze natuurlijke persoon.

Ik heb geprobeerd via de svcutil tool van .NET de classes te genereren met behulp van de wsdl "bg0310_ontvangAsynchroon_vraagAntwoord.wsdl" alleen geeft deze allemaal errors tijdens het genereren, namelijk:

C:\Program Files (x86)\Microsoft Visual Studio 12.0>svcutil "C:\Users\Administra
tor\Documents\StUFFiles\StUF0310\23\bg0310\vraagAntwoord\bg0310_ontvangAsynchroo
n_vraagAntwoord.wsdl"
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.33440]
Copyright (c) Microsoft Corporation.  All rights reserved.

Error: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: System.Se
rviceModel.Description.DataContractSerializerMessageContractImporter
Error: Cannot find definition for http://www.egem.nl/StUF/StUF0301:Bv01.  Servic
e Description with namespace http://www.egem.nl/StUF/StUF0301 is missing.
Parameter name: name
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.egem.nl/S
tUF/sector/bg/0310']/wsdl:portType[@name='OntvangAsynchroon']


Error: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is de
pendent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://www.egem.nl/
StUF/sector/bg/0310']/wsdl:portType[@name='OntvangAsynchroon']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.egem.nl/S
tUF/sector/bg/0310']/wsdl:binding[@name='SOAPOntvangAsynchroon']


Error: Cannot import wsdl:port
Detail: There was an error importing a wsdl:binding that the wsdl:port is depend
ent on.
XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://www.egem.nl/S
tUF/sector/bg/0310']/wsdl:binding[@name='SOAPOntvangAsynchroon']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.egem.nl/S
tUF/sector/bg/0310']/wsdl:service[@name='OntvangAsynchroon']/wsdl:port[@name='On
tvangAsynchroon']


Generating files...
Warning: No code was generated.
If you were trying to generate a client, this could be because the metadata docu
ments did not contain any valid contracts or services
or because all contracts/services were discovered to exist in /reference assembl
ies. Verify that you passed all the metadata documents to the tool.

Warning: If you would like to generate data contracts from schemas make sure to
use the /dataContractOnly option.

---------------------------------------------------------------------------------------------

Er wordt in andere discussies voorgesteld om de XSD-Resolver te gebruiken, alleen is het mij onduidelijk welke bestanden ik hierbij moet gebruiken en welke configuratie ik moet gebruiken.

Als iemand meer ervaring heeft in het maken van de webservice voor .NET en mij zou willen uitleggen hoe ik vanaf de wsdl de classes kan generen dan zou dat fijn zijn.

Met vriendelijke groet,

Freek van der Toorn

Freek van der Toorn

Ik heb gezocht tussen de discussies en daar kwam ik een topic tegen van 2009 (https://discussie.kinggemeenten.nl/discussie/gemma/stuf-301/stuf-0300-ws...)

Waarin Gillian het advies geeft om alle wsdl's en xsd's die worden geïmporteerd en geïncluded ook als parameter meegeven aan wsdl.exe.

 

dit geeft het volgende commando:

wsdl /protocol:SOAP /o:C:\output\ /serverInterface C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\vraagAntwoord\bg0310_ontvangAsynchroon_vraagAntwoord.wsdl C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\0301\stuf0301_types.wsdl C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\0301\stuf0301.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\vraagAntwoord\bg0310_msg_vraagAntwoord.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\vraagAntwoord\bg0310_ent_vraagAntwoord.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\entiteiten\bg0310_ent_basis.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\entiteiten\bg0310_simpleTypes.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\entiteiten\bg0310_stuf_simpleTypes.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\gml.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\dynamicFeature.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\feature.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\geometryBasic2d.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\geometryBasic0d1d.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\measures.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\units.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\dictionary.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\gmlBase.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\basicTypes.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\xlink\1.0.0\xlink.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\xml\xml.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\temporal.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\direction.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\topology.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\geometryComplexes.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\geometryAggregates.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\geometryPrimitives.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\coverage.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\valueObjects.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\grids.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\coordinateReferenceSystems.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\coordinateSystems.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\referenceSystems.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\datums.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\coordinateOperations.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\dataQuality.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\observation.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\defaultStyle.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\smil\smil20.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\smil\smil20-language.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\temporalReferenceSystems.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\gml-3.1.1.2\gml\3.1.1\base\temporalTopology.xsd C:\Users\Administrator\Documents\StUFFiles\StUF0310\23\bg0310\vraagAntwoord\bg0310_msg_stuf_vraagAntwoord.xsd

--------------------------------------------------------------------------------------------------------------------------

Dit geeft helaas de volgende error:

Error: Unable to import binding 'SOAPOntvangAsynchroon' from namespace 'http://www.egem.nl/StUF/sector/bg/0310'.
  - Unable to import operation 'aoaLa02'.
  - Member DynamicFeatureCollectionType.Item of type HistoryPropertyType hides base class member AbstractFeatureType.Item of type LocationPropertyType. Use XmlElementAttribute or XmlAttributeAttribute to specify a new name. 

Robert Melskens

Dag Freek,

Ik zou inderdaad de XSD-Resolver eens proberen.
De XSD-Resolver resolved nl. een aantal constructies waarmee code-generatoren problemen mee kunnen hebben.

  • Ten eerste plaatst het alle componenten die bij een bepaalde namespace horen in 1 schema bestand.
  • Ten tweede zet het XML-Schema 'restriction' constructies om naar wel door code-generatoren te verwerken constructies.
  • En ten derde verwijderd het ongebruikte XML-Schema componenten.

De XSD-Resolver kun je hier vinden.

In het configuratiebestand (in de folder 'XSD-Resolver/input') kun je gebruik maken van het derde 'application:configurationSectorModel' element (zet daarvan het 'active' attribute op 'yes').
Waarschijnlijk moet je alleen de waarde van het element 'application:pathSectormodel' aanpassen.
Zie ook de bij de XSD-Resolver gevoegde documentatie.
 

Freek van der Toorn

Bedankt voor je reactie Robert.

Ik heb de XSD-Reslover gebruikt zoals u had aangegeven en deze gaf een aantal resolved schemas terug.

Door deze resolved schema's toe te voegen als parameters aan wsdl.exe en nog de xsd en wsdl bestanden van de 0301 folder (stuf0301.xsd, stuf0301_services.wsdl, stuf0301_types.wsdl, stuf0301mtom.xsd) word er een bestand gegenereerd die vervolgens geïmporteerd kan worden in het .NET project.

Ik zal aan deze reactie mijn command line commando toevoegen voor het geval er meer .NET gebruikers zijn die moeite hebben met het generen van de code met behulp van de wsdl:

wsdl /protocol:SOAP /o:<output folder> /serverInterface C:\StUF\bg0310\23\bg0310\mutatie\bg0310_ontvangAsynchroon_mutatie.wsdl C:\StUF\tools\XSD-Resolver\finalized\bg0310_msg_mutatie_resolved.xsd C:\StUF\tools\XSD-Resolver\finalized\bg0310_msg_stuf_mutatie_resolved.xsd C:\StUF\tools\XSD-Resolver\finalized\gml_resolved.xsd C:\StUF\tools\XSD-Resolver\finalized\smil20_resolved.xsd C:\StUF\tools\XSD-Resolver\finalized\smil20-language_resolved.xsd C:\StUF\tools\XSD-Resolver\finalized\xlink_resolved.xsd C:\StUF\tools\XSD-Resolver\finalized\xml_resolved.xsd C:\StUF\bg0310\23\0301\stuf0301.xsd C:\StUF\bg0310\23\0301\stuf0301mtom.xsd C:\StUF\bg0310\23\0301\stuf0301_services.wsdl C:\StUF\bg0310\23\0301\stuf0301_types.wsdl /namespace:"<eigen namespace>"

 

Nogmaals bedankt voor je hulp Robert.

Robert Melskens

Fijn om te horen dat het nu gelukt is.
Succes verder.