将WSDL导入Delphi 7时出现堆栈溢出错误
我正在尝试使用WSDLImporter(以及WSDLImp命令行)将WSDL导入Delphi 7.
使用WSDLImporter时,Delphi的内存使用量开始增加,直到它崩溃(没有错误)或者我收到堆栈溢出错误. 使用命令行工具时,我得到以下内容 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 然后一遍又一遍地循环最后两行.显然这显示错误,但没有关于该错误可能的进一步细节. 我在Microsoft Visual Studio中创建了一个C#项目,并将其作为Web引用添加而没有任何问题,但由于遗留代码,我需要在Delphi 7中使用它. WSDL的地址是 https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl 我也尝试使用soapUI加载它,没有任何错误. 编辑 我假设Delphi不喜欢的WSDL文件存在问题.关于我可以要求WSDL开发人员改变以便导入的任何线索? // ************************************************************************ // // 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][] 解决方法
没有回答这个问题但可能有用:Free Pascal有一个Web服务工具包,它也有一个WSDL导入器.文档说它也适用于Delphi.
http://wiki.freepascal.org/Web_Service_Toolkit (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |