2010-12-15 5 views
1

lors de la tentative de génération d'un proxy à partir de ce WebService (http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl) Je reçois cette erreur de svcutil :Erreur lors de la génération du proxy avec svcutil

Error: Cannot obtain Metadata from http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455 .

WS-Metadata Exchange Error URI: http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

Metadata contains a reference that cannot be resolved: 

'http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl'.

The content type text/xml; charset=utf-8 of the response message 

does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 553 bytes of the response were: '
ns1:Client.NoSOAPAction no SOAPAction header! usalwsc01 '.

The remote server returned an error: (500) Internal Server Error. 

HTTP GET Error URI: http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

The document at the url http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl 

was not recognized as a known document type. The error message from each known type may help you fix the problem: - Report from 'XML Schema' is 'The root element of a W3C XML Schema should be and its namespace should be 'http://www.w3.org/2001/XMLSchema'.'. - Report from 'DISCO Document' is 'Discovery document at the URL http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl could not be found.'. - The document format is not recognized. - Report from 'WSDL Document' is 'There is an error in XML document (242, 18).'.

  • Namespace prefix 'impl:wb' is not defined.

J'invoquaient svcutil avec ces paramètres:

svcutil /n: *,WB.Client /et:WB.Client.WSResultObject /o:Client\WBServices /noConfig http://scdemo14.infor.com:9014/axis/services/wb:wsclocks-inbound?wsdl

Est-ce que quelqu'un a une idée de ce que je peux faire pour générer un proxy? Je ne peux pas changer le service du côté serveur.

Répondre

3

Le problème est que le service utilise une convention de nommage pour la liaison qui est incompatible avec svcutil. Vous pouvez contourner cela comme suit:

  • Parcourir l'URL WSDL de service et enregistrer le WSDL dans un fichier local.
  • Ensuite, apportez les modifications suivantes au fichier:
  • supprimer le préfixe d'espace de nom du nom utilisé pour la wsdl: binding-à-dire changer

    name="wb:wsclocks-inboundSoapBinding" être

    name = "wsclocks-inboundSoapBinding"

  • Modifiez l'attribut de liaison de l'attribut wsdl: port à faire correspondre et supprimez également le préfixe d'espace de noms de la valeur de l'attribut de nom. Il est donc wsclocks-inbound.

Lancez ensuite svcutil <wsdl-file-path> /o:Client\WBServices /noConfig

+0

Merci, ce jour :) résolu mon – Ajadex

Questions connexes