加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

将WSDL导入Delphi 7时出现堆栈溢出错误

发布时间:2020-12-15 09:45:20 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用WSDLImporter(以及WSDLImp命令行)将WSDL导入Delphi 7. 使用WSDLImporter时,Delphi的内存使用量开始增加,直到它崩溃(没有错误)或者我收到堆栈溢出错误. 使用命令行工具时,我得到以下内容 Borland WSDLIMP Version 2.2 - $Rev: 10138 $Copyright
我正在尝试使用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 XE2的试用版(在另一个问题中提到可能的解决方案),它在我的PAS文件的顶部给了我以下内容. (如果需要,我可以上传整个代码)

我假设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.

“Web Service Toolkit” is a web services package for FPC,Lazarus and
Delphi; “Web Service Toolkit” is meant to ease web services
consumption and creation by FPC,Lazarus and Delphi users.

http://wiki.freepascal.org/Web_Service_Toolkit

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读