Estoy intentando importar un WSDL a Delphi 7 utilizando el WSDLImporter (así como la línea de comando WSDLImp).Error de desbordamiento de pila al importar WSDL a Delphi 7
Al usar WSDLImporter, el uso de la memoria de Delphi simplemente comienza a aumentar hasta que se bloquea (sin error) o aparece un error de desbordamiento de pila.
Cuando se utiliza la herramienta de línea de comandos me sale el siguiente
Borland WSDLIMP Version 2.2 - $Rev: 10138 $
Copyright (c) 2007 Borland Software Corporation
Reading: https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl
Import : https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl:0
*Error*: http://api.demo.ezidebit.com.au/v3-3/nonpci?xsd=xsd0
*Error*: http://api.demo.ezidebit.com.au/v3-3/nonpci?xsd=xsd1
*Error*: http://api.demo.ezidebit.com.au/v3-3/nonpci?xsd=xsd2
Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl=wsdl0
Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl
Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl=wsdl0
Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl
Este bucles luego a través de las últimas 2 líneas una y otra vez. Obviamente, esto muestra un error, pero no hay más detalles sobre el error.
He creado un proyecto de C# en Microsoft Visual Studio y lo agregué como referencia web sin ningún problema, pero también necesito tenerlo en Delphi 7 debido al código heredado.
La dirección para el WSDL es
https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl
También he intentado cargar esta usando soapUI sin ningún error.
EDITAR he descargado la versión de prueba de Delphi XE2 (mencionado en otra pregunta como una posible solución) y me ha dado el siguiente en la parte superior de mi archivo PAS. (Puedo cargar el código completo si es necesario)
Supongo que hay un problema con el archivo WSDL que a Delphi no le gusta. ¿Alguna pista sobre lo que puedo pedirle al desarrollador de WSDL que cambie para que importe?
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL : https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl
// >Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl=wsdl0
// >Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl
// >Import : https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl>0
// >Import : http://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl>0
// Encoding : utf-8
// Version : 1.0
// (9/02/2012 2:32:14 PM - - $Rev: 37707 $)
// ************************************************************************ //
unit nonpci;
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 Embarcadero types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:CreateScheduleResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:CreateSchedule - "https://px.ezidebit.com.au/"[Lit][]
// !:ClearScheduleResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:ClearSchedule - "https://px.ezidebit.com.au/"[Lit][]
// !:ChangeScheduledAmountResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPayments - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentDetailPlusNextPaymentInfoResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:ChangeScheduledAmount - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentsResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:ChangeScheduledDate - "https://px.ezidebit.com.au/"[Lit][]
// !:IsSystemLockedResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:IsSystemLocked - "https://px.ezidebit.com.au/"[Lit][]
// !:PaymentExchangeVersionResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:PaymentExchangeVersion - "https://px.ezidebit.com.au/"[Lit][]
// !:IsBsbValidResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:TestFunction - "https://px.ezidebit.com.au/"[Lit][]
// !:ChangeScheduledDateResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:IsBsbValid - "https://px.ezidebit.com.au/"[Lit][]
// !:TestFunctionResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:GetCustomerDetails - "https://px.ezidebit.com.au/"[Lit][]
// !:ChangeCustomerStatusResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:AddPayment - "https://px.ezidebit.com.au/"[Lit][]
// !:GetCustomerDetailsResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:ChangeCustomerStatus - "https://px.ezidebit.com.au/"[Lit][]
// !:AddCustomerResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:AddCustomer - "https://px.ezidebit.com.au/"[Lit][]
// !:EditCustomerDetailsResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:EditCustomerDetails - "https://px.ezidebit.com.au/"[Lit][]
// !:AddPaymentResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentDetail - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentStatusResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentDetailPlusNextPaymentInfo - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentDetailResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:GetPaymentStatus - "https://px.ezidebit.com.au/"[Lit][]
// !:DeletePaymentResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:DeletePayment - "https://px.ezidebit.com.au/"[Lit][]
// !:GetScheduledPaymentsResponse - "https://px.ezidebit.com.au/"[Lit][]
// !:GetScheduledPayments - "https://px.ezidebit.com.au/"[Lit][]
que estás hablando Delphi 7, sin embargo en el registro que dice "copyright (C) 2007", si no recuerdo mal, delphi 7 sería "Derechos de autor (c) 2002", nota 2007! = 2002, ¿es posible que en su ruta de búsqueda esté Delphi 2006/7 y no Delphi 7? Intente llamar a "C: \ Program" Files \ Borland \ Delphi7 \ bin \ WSDLImp.exe "en CMD para asegurarse de estar llamando al WSDLImp correcto – ComputerSaysNo
@DorinDuminica, el OP está utilizando este importador actualizado http://cc.embarcadero.com/Item/24535 – RRUZ
ouch , mi mal, pero tal vez debería probar el original, vale la pena intentar ... – ComputerSaysNo