Máy chủ SOAP và ứng dụng khách VCL + bản demo indy cho Delphi XE?


151

Delphi được sử dụng để bao gồm một thư mục demo cho Dịch vụ web, nhưng dường như không còn bao gồm điều này.

Tôi mới thử các dự án demo Delphi 7 ( SOAPDMServerWAD, một máy chủ gần như không có UI nào cả SOAPDMClient) và không thể để chúng hoạt động, ngay cả trong Delphi 7.

Nếu bất kỳ ai đã từng thực hiện một bản demo tương tự trong Delphi XE hoặc Delphi 2010, giống hệt với các SOAPDMServerWAD+SoapDMClientbản demo cũ , hoạt động trong Delphi XE và với ít nhất là giao diện người dùng tối thiểu đến từ trình hướng dẫn ứng dụng Delphi SOAP Server, điều đó sẽ hoàn hảo.

Cập nhật: Bản demo xuất hiện từ Delphi 2010 nhưng sử dụng WAD (trình gỡ lỗi ứng dụng web) đã lỗi thời, tôi đã cố gắng chuyển nó sang Indy mới runtime/web-app-development-harnessing-code, nhưng dường như tôi không thể làm cho nó hoạt động được. Bản demo chạy, nhưng máy chủ không có giao diện Người dùng và dường như không chạy bất kỳ máy chủ HTTP nào (được kiểm tra bằng trình duyệt web thông thường, qua http://localhost:port/url. Nhân tiện, hãy thử tìm kiếm bản demo và url này xuất hiện và Tôi đã hỏi chưa đầy một giờ trước. Thật đáng sợ, google.

Update2 Xem câu trả lời của riêng tôi dưới đây, một liên kết sẽ sớm xuất hiện với mã làm việc.


3
[offtopic] Tôi đã phải tạo một ứng dụng khách SOAP khá đơn giản ở Delphi vài tháng trước, tỏ ra khá đau đầu và lãng phí năng suất, tôi khuyên bạn nên tìm kiếm một giải pháp thay thế trong khi đó.
Máy tính Không có

13
@Dorin - Sử dụng Trình nhập WSDL rất dễ dàng để tạo ứng dụng khách SOAP.
Robert Yêu

8
@Robert không phải là phần gây đau đầu, đó là tài liệu và thiếu bản demo, v.v. Tôi đã phải học quá nhiều về SOAP cho một khách hàng đơn giản, không phục vụ tôi quá nhiều, từ những gì tôi đã hiểu Java dễ dàng hơn nhưng chưa thử nó => Tôi là một người dùng khó tính.
ComputerSaysKhông

5
xà phòng dễ nhất là .net wcf
ẩn

5
Có một video hướng dẫn tại edn.embarcadero.com/article/40973 . liên quan, thích hợp?
Alex

Câu trả lời:


39

Tôi đã đăng toàn bộ bản demo cho SOAP trên CodeCentral dưới dạng mục 28789 .

Chúng chứa tất cả các bản demo SOAP thời Delphi 2007 từ WebServicesthư mục, hiện được cập nhật cho Delphi XE và XE2, bao gồm chuyển đổi các máy chủ WAD cũ thành các máy chủ INDY VCL mới. Bạn sẽ nghĩ rằng đó là ấn tượng, ngoại trừ nó không. Nó thực sự dễ dàng. Chỉ cần sử dụng trình hướng dẫn để tạo dự án mới, sau đó thêm giao diện dịch vụ web và các đơn vị triển khai và bất kỳ đơn vị nào khác thuộc bản demo cũ vào dự án. Khi chúng được thêm vào dự án, chúng sẽ hoạt động. Bản demo cơ bản Máy chủ SOAP thực sự dễ xây dựng trong Delphi, khi bạn có bản demo hoạt động, bạn sẽ thấy việc sửa đổi và mở rộng nó khá dễ dàng.

Bản demo trả lời tốt nhất câu hỏi tôi đã hỏi ở trên nằm trong SOAPDataModulethư mục con.

Các vấn đề cơ bản với bản demo từ thời đại 2007 là hai:

  1. WAD (trình gỡ lỗi ứng dụng web) đã biến mất. bạn phải tạo một máy chủ mới bằng máy chủ Indy, với mục đích demo tối ưu, tiết kiệm cho bạn khỏi việc sử dụng WAD (đã hết) hoặc thiết lập môi trường ISAPI, trong IIS, điều này khó lý tưởng cho mục đích demo. Dự án demo mới mà tôi thực hiện có tên là SoapDMServerINDY và nó bao gồm một mô-đun dữ liệu (datamod_u.pas), một đơn vị Giao diện người dùng dạng VCL ( IndyServerVCLFormUnit.pas) và mô-đun web Indy Server, được gọi IndyServerWebModule.pas.

  2. Bản demo Delphi 2007 đã bị hỏng nhờ thực tiễn mới về việc có một thư mục con Debug / Win32 mà bản thực thi bản demo hiện đang có, bạn cần phải đi xa hơn. Tôi đã sửa máy chủ demo để nó cảnh báo bạn bằng thông báo lỗi nếu không thể định vị được các tệp dữ liệu, giúp bạn tránh khỏi "lỗi phân tích cú pháp XML" bí ẩn. Tôi cũng đã thêm một số kiểm tra lỗi trong một vài bản demo để nó cho bạn biết rằng bạn cần cài đặt interbase để bản demo này hoạt động, vì một số bản demo yêu cầu Interbase được cài đặt và chạy, và một yêu cầu bí danh gọi là IBLOCAL tồn tại, và tốt nhất là một bảng được gọi là EMPLOYEEtồn tại.

nhập mô tả hình ảnh ở đây

Các yếu tố của bản demo này là một máy chủ ( SoapDMServerINDY , dựa trên mã từ SOAPDMServerWAD) và máy khách SOAPDMClient kết nối với bản demo và có hai trang, một trang sẽ hiển thị truy cập dữ liệu cơ bản thông qua từ xa dữ liệu DBGrid + và trang thứ hai trang hiển thị cách gọi phương thức SOAP tùy chỉnh.

Để sử dụng bản demo: Bạn phải khởi động máy chủ, nhấp vào nút bắt đầu, sau đó khởi động máy khách và nhấp vào Kết nối.

nhập mô tả hình ảnh ở đây


1
Bravo cho những nỗ lực! Nếu bạn không thể đăng bản demo cố định, có thể một diff / patch sẽ làm gì?
Chris Thornton

8
Đó là một nguyên tắc cũ của cộng đồng nguồn mở; Gãi ngứa của chính bạn, và chia sẻ kết quả, và hy vọng nó sẽ không chỉ mang lại lợi ích cho tất cả mọi người, mà còn xây dựng một cộng đồng, theo thời gian, có thể làm những việc mà chúng ta không thể làm một mình. Vì vậy, xin vui lòng gửi cho tôi các báo cáo lỗi nếu bạn tìm thấy vấn đề.
Warren P
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.