2012-02-09 29 views
5

Tôi đang cố gắng nhập WSDL vào Delphi 7 bằng cách sử dụng WSDLImporter (cũng như dòng lệnh WSDLImp).Lỗi tràn ngăn xếp khi nhập WSDL vào Delphi 7

Khi sử dụng WSDLImporter, việc sử dụng bộ nhớ của Delphi chỉ bắt đầu tăng cho đến khi lỗi (không có lỗi) hoặc tôi gặp lỗi tràn ngăn xếp.

Khi sử dụng công cụ dòng lệnh tôi nhận được sau

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 

này sau đó vòng qua 2 dòng cuối cùng hơn và hơn nữa. Rõ ràng điều này cho thấy một lỗi nhưng không có thêm chi tiết về những gì mà lỗi có thể.

Tôi đã tạo một dự án C# trong Microsoft Visual Studio và thêm đây làm tham chiếu web mà không gặp bất kỳ sự cố nào nhưng tôi cần có nó trong Delphi 7 cũng do mã kế thừa.

Các địa chỉ cho WSDL là

https://api.demo.ezidebit.com.au/v3-3/nonpci?wsdl

Tôi cũng đã cố gắng tải này sử dụng soapUI mà không cần bất kỳ lỗi nào.

EDIT Tôi đã tải phiên bản dùng thử của Delphi XE2 (đề cập trong câu hỏi khác như một giải pháp khả thi) và nó đã cho tôi những điều sau ở phía trên cùng của tập tin PAS tôi. (Tôi có thể tải lên toàn bộ mã nếu cần)

Tôi giả định rằng có sự cố với tệp WSDL mà Delphi không thích. Bất kỳ manh mối nào về những gì tôi có thể yêu cầu nhà phát triển WSDL thay đổi để nó sẽ nhập?

// ************************************************************************ // 
// 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][] 
+0

bạn đang nói về Delphi 7, tuy nhiên trong nhật ký nó nói "Bản quyền (c) 2007", nếu tôi nhớ chính xác, delphi 7 sẽ là "Bản quyền (c) 2002", lưu ý 2007! = 2002, có thể là trong đường dẫn tìm kiếm của bạn là delphi 2006/7 và không delphi 7? Thử gọi "C: \ Program Files \ Borland \ Delphi7 \ bin \ WSDLImp.exe "trong CMD để đảm bảo rằng bạn đang gọi đúng WSDLImp – ComputerSaysNo

+1

@DorinDuminica, OP đang sử dụng nhà nhập khẩu được cập nhật này http://cc.embarcadero.com/Item/24535 – RRUZ

+0

ouch , xấu của tôi, nhưng có lẽ anh ta nên thử một bản gốc, nó đáng để bắn ... – ComputerSaysNo

Trả lời

0

Không trả lời câu hỏi nhưng có lẽ hữu ích: Free Pascal có một dịch vụ Web Toolkit mà còn có một nhà nhập khẩu WSDL. Các tài liệu nói rằng nó hoạt động với Delphi quá.

"Web Service Toolkit” được một gói dịch vụ web cho FPC, Lazarus và Delphi;. ‘Web Service Toolkit’ có nghĩa là để giảm bớt các dịch vụ web tiêu thụ và sáng tạo bởi người dùng FPC, Lazarus và Delphi

http://wiki.freepascal.org/Web_Service_Toolkit

+0

Cảm ơn mẹo. Hãy suy nghĩ chúng tôi sẽ phải viết một điều khiển Active X phơi bày các phương pháp dịch vụ web trong Visual studio và tiêu thụ trong Delphi 7. –

+0

Vui vì tôi có thể giúp đỡ! Đối với các dịch vụ web rất đơn giản, một liên kết HTTP Server/Client cũng có thể là một tùy chọn. Hoặc một phần mềm trung gian được định hướng thông điệp dựa trên các giải pháp nguồn mở (xem trang chủ tiểu sử của tôi). – mjn

Các vấn đề liên quan