FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Errores en la creación de Cliente WebService
Hola a todos, sucede que estoy tratando de crear un cliente de WebService desde File-->New-->Other-->webservice-->wsdl Importer (Delphi 7), la dirección de la especificación del WSDL es: https://www2.ventanillaunica.gob.mx/...veService?wsdl Así se genera mi unidad y tras poner el componente HTTPRIO y configurar las propiedades WSDLLOCATION, SERVICE y PORT, agregando mi nueva unidad en el uses de mi unidad principal, procedo a compilar pero obtengo una serie de errores que hacen referencia al tipo de Parametros que estoy enviando en mis peticiones al WebService. ¿Eso indica que el WSDL es incorrecto, que falta definir algo, o que tengo que hacer algun tipo de modificación a la unidad de mi Webserver-cliente recien generado? Por lo que he leído en tutoriales acerca de la creación de Clientes de WebServices, todo deberia ser tan transparente como indicar la dirección del WSDL y unos cuantos Clicks. Anexo el código generado y los errores arrojados al momento de compilar. Gracias de antemano por la ayuda.
Errores: [Error] RecibirCoveService.pas(45): Undeclared identifier: 'solicitarRecibirCoveServicio' [Error] RecibirCoveService.pas(45): Undeclared identifier: 'solicitarRecibirCoveServicioResponse' [Error] RecibirCoveService.pas(46): Undeclared identifier: 'solicitarRecibirRelacionFacturasIAServicio' [Error] RecibirCoveService.pas(46): Undeclared identifier: 'solicitarRecibirRelacionFacturasIAServicioResponse' [Error] RecibirCoveService.pas(47): Undeclared identifier: 'solicitarRecibirRelacionFacturasNoIAServicio' [Error] RecibirCoveService.pas(47): Undeclared identifier: 'solicitarRecibirRelacionFacturasNoIAServicioResponse' [Fatal Error] AAADAMM3.dpr(139): Could not compile used unit 'RecibirCoveService.pas' Código:
// ************************************************************************ // // The types declared in this file were generated from data read from the // WSDL File described below: // WSDL : https://www2.ventanillaunica.gob.mx/ventanilla/RecibirCoveService?wsdl // Encoding : UTF-8 // Version : 1.0 // (30/11/2011 01:28:50 p.m. - 1.33.2.5) // ************************************************************************ // unit RecibirCoveService; interface uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns; type // ************************************************************************ // // The following types, referred to in the WSDL document are not being represented // in this file. They are either aliases[@] of other types represented or were referred // to but never[!] declared in the document. The types from the latter category // typically map to predefined/known XML or Borland types; however, they could also // indicate incorrect WSDL documents that failed to declare or import a schema type. // ************************************************************************ // // !:solicitarRecibirCoveServicio - "http://www.ventanillaunica.gob.mx/cove/ws/oxml/" // !:solicitarRecibirCoveServicioResponse - "http://www.ventanillaunica.gob.mx/cove/ws/oxml/" // !:solicitarRecibirRelacionFacturasIAServicio - "http://www.ventanillaunica.gob.mx/cove/ws/oxml/" // !:solicitarRecibirRelacionFacturasIAServicioResponse - "http://www.ventanillaunica.gob.mx/cove/ws/oxml/" // !:solicitarRecibirRelacionFacturasNoIAServicio - "http://www.ventanillaunica.gob.mx/cove/ws/oxml/" // !:solicitarRecibirRelacionFacturasNoIAServicioResponse - "http://www.ventanillaunica.gob.mx/cove/ws/oxml/" // ************************************************************************ // // Namespace : http://www.ventanillaunica.gob.mx/cove/ws/service/ // soapAction: http://www.ventanillaunica.gob.mx/%operationName% // transport : http://schemas.xmlsoap.org/soap/http // style : document // binding : IReceptorEndpointBinding // service : RecibirCoveService // port : IReceptorBinding // URL : https://www2.ventanillaunica.gob.mx:5002/ventanilla/RecibirCoveService // ************************************************************************ // IReceptor = interface(IInvokable) ['{65A41149-B829-ABA1-4D2E-609AEDEE08A2}'] function RecibirCove(const peticion: solicitarRecibirCoveServicio): solicitarRecibirCoveServicioResponse; stdcall; function RecibirRelacionFacturasIA(const peticion: solicitarRecibirRelacionFacturasIAServicio): solicitarRecibirRelacionFacturasIAServicioResponse; stdcall; function RecibirRelacionFacturasNoIA(const peticion: solicitarRecibirRelacionFacturasNoIAServicio): solicitarRecibirRelacionFacturasNoIAServicioResponse; stdcall; end; function GetIReceptor(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IReceptor; implementation function GetIReceptor(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IReceptor; const defWSDL = 'https://www2.ventanillaunica.gob.mx/ventanilla/RecibirCoveService?wsdl'; defURL = 'https://www2.ventanillaunica.gob.mx:5002/ventanilla/RecibirCoveService'; defSvc = 'RecibirCoveService'; defPrt = 'IReceptorBinding'; var RIO: THTTPRIO; begin Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end; if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; try Result := (RIO as IReceptor); if UseWSDL then begin RIO.WSDLLocation := Addr; RIO.Service := defSvc; RIO.Port := defPrt; end else RIO.URL := Addr; finally if (Result = nil) and (HTTPRIO = nil) then RIO.Free; end; end; initialization InvRegistry.RegisterInterface(TypeInfo(IReceptor), 'http://www.ventanillaunica.gob.mx/cove/ws/service/', 'UTF-8'); InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IReceptor), 'http://www.ventanillaunica.gob.mx/%operationName%'); InvRegistry.RegisterInvokeOptions(TypeInfo(IReceptor), ioDocument); InvRegistry.RegisterInvokeOptions(TypeInfo(IReceptor), ioLiteral); end. |
#2
|
|||
|
|||
Hola
Es tu versión de Delphi, con Delphi2007 o mayor ya puedes generar correctamente la clase que es importada por el WSDL Importer. Saludos |
#3
|
|||
|
|||
Delphi 7 a Delphi 2007
Creo que on otra PC tenemos instalado el Delphi 2007. Mi pregunta es: Si hago la importacion de la Clase en Delphi 2007 y me la traigo a mi aplicación en Delphi 7 será todo transparente? Pienso que así debería ser.
|
#4
|
|||
|
|||
Cita:
Saludos |
#5
|
|||
|
|||
Probando con WSDL Importer
Gracias por la ayuda, voy a hacer la prueba y reporto en el foro los resultados que obtenga. Esta es la primera experiencia que tengo con Webservices y creo que voy a tener varias preguntas. Es bueno tener como soporte el Club Delphi y sus miembros. Saludos.
|
#6
|
|||
|
|||
Oye ya lograste conectarte a la ventanilla unica?
Yo ya me conecte pero tengo problemas para crear la cadena original, no hay esquemas bien definidos |
#7
|
|||
|
|||
Cita:
Saludos |
#8
|
|||
|
|||
Ya envio el documento y como respuesta obtengo :
Cita:
Cita:
|
#9
|
|||
|
|||
Si has intentado conectarte puedes ver que NO HAY ESQUEMA XSLT para crear la cadena, tiene que ser "a pata" y eso da muchos errores
Por cierto para la conexion con Delphi uso la libreria Synapse, con Indy no pude conectarme nunca, |
#10
|
|||
|
|||
Hola despues de que estuve detenido por no generar mi Cliente de WebService, finalmente lo pude importar utilizando el WSDL de la version de Delphi 2007. Hasta ese momento estabamos con la idea de que teniamos que generar una cadena XML y era ese el parametro que ibamos a pasarle al Webservice, pero Oh error, las nuevas clases generadas por Delphi desde el WSDL nos indicaron que hay que pasarla en un Objeto de acuerdo al tipo de documento a validar. Estoy actualmente creando mi objeto y he enviado el objeto(incompleto, precisamento no lleva info de mercancias) por el WebService pero he recibido error:
Código:
'Error on verifying message against security policy Error Code:1000' |
#11
|
|||
|
|||
Cita:
Saludos |
#12
|
|||
|
|||
Aprovechando el viaje, estoy atorado en la asignacion de valores a variables del tipo TXSDecimal, tengo algo así:
Código:
las_mercancias[i].valorUnitario.AsBcd := qAux.fieldByName('cantidad_comer').AsBCD; Saludos, estamos en contacto. |
#13
|
||||
|
||||
Cita:
Te hago dos observaciones:
Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
|||
|
|||
Cita:
Aunque seria bueno que algún moderador dividiera estos "posts" en uno individual, recuerda que cada pregunta un hilo. |
#15
|
|||
|
|||
Cita:
Saludos |
#16
|
|||
|
|||
Buen dia:
Estoy trabajando tambien con el COVE y me fui por usar el asistente de WSDL ya estoy haciendo pruebas pero el xml que me genera no es 100% como el de los ejemplos que proporcionan en el VUCEM hay una serie de prefijos en los nombres de los nodos (oxml inclusive lo de header no se genera por si solo hay que hacerlo aparte pero esos nodos estan aun peor por que tienen varios atributos adicionales. el error 'Error on verifying message against security policy Error Code:1000' estoy seguro que es por eso Estoy usando fiddler para monitorear el trafico www_fiddler2_com. Por lo que veo hay quienes crean aparte el xml y se lo envian al webservice pero no no se como le hacen si me pudiarna orientar en ese sentido les agradeceria bastante no creo que lo que se logre con el asistente vaya a poder crear un xml tan adornado comoel que piden. Y todo esto indemepndientemente de lo de la cadena original y la firma. David |
#17
|
|||
|
|||
Cove
Creo que deberiamos crear un Hilo con respecto al COVE, no crees. En algun momento del desarrollo me dedique a crear el archivo XML(antes de tener acceso al URL:WSDL) pero despues de importar el WSDL, me dí cuenta que tengo que mis llamadas al WebService me piden un objeto. Objeto que estoy a punto de terminar, solo me falta solventar un problema de asignacion a variables de tipo TXSDecimal. Estamos en contacto.
|
#18
|
|||
|
|||
Cita:
con respecto a lo del uso de los txs yo le hice asi:
La cosa "rara" es la del header que se tiene que agregar aparte MySecHdr : Security; eso lo defini en la unidad que genera el webservice del sig modo:
Si me genera un xml "normalito" y lo transmite pero vucem me lo rechaza por que le faltan un monton de "adornos" attributos adicionales y prefijos de namespaces, de hecho la funcion esa que ves en la clase security a la que el hago override es donde estoy intentando que me genere al menos en ese nodo el rollo tal y como lo pide el vucem. Los datos que vez son los de uno de los ejemplos (primero quiero resolver esta parte antes de aventarme a lo demas) Saludos David |
#19
|
|||
|
|||
Errores en la creación de Cliente WebService
Y como definiste tu function ObjectToSOAP ???
|
#20
|
|||
|
|||
como obtienen el firmaElectronica.certificado ?
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
webservice con Sesion | comba | Internet | 6 | 11-12-2020 13:04:18 |
WebService y parametros | AdrianD | JAVA | 4 | 05-09-2010 15:41:41 |
Problema con un cliente de un webservice | vejerf | Internet | 2 | 09-03-2009 11:27:30 |
WebService y D4 | Nose | Internet | 1 | 02-08-2005 23:18:23 |
|