Demo server SOAP dan aplikasi klien VCL + indy untuk Delphi XE?

151

Delphi digunakan untuk menyertakan folder demo untuk Layanan web, tetapi tampaknya tidak lagi menyertakan ini.

Saya baru saja mencoba proyek demo Delphi 7 ( SOAPDMServerWAD, server dengan hampir tidak ada UI sama sekali, dan SOAPDMClient) dan tidak dapat membuatnya berfungsi, bahkan di Delphi 7.

Jika ada yang pernah membuat karya demo serupa di Delphi XE, atau Delphi 2010, identik dengan SOAPDMServerWAD+SoapDMClientdemo lama , bekerja di Delphi XE, dan dengan setidaknya UI minimal yang berasal dari wizard aplikasi Server SOAP Delphi, itu akan menjadi sempurna.

Pembaruan: Demo ini muncul hingga Delphi 2010 tetapi menggunakan WAD (web-app-debugger) yang sekarang sudah usang, saya mencoba untuk mem-portingnya ke Indy yang baru runtime/web-app-development-harnessing-code, tetapi sepertinya saya tidak bisa membuatnya berfungsi. Demo berjalan, tetapi server tidak memiliki antarmuka pengguna, dan tampaknya tidak menjalankan server HTTP apa pun (diuji menggunakan browser web biasa, melalui http://localhost:port/url. Ngomong-ngomong, coba googling untuk demo, dan url ini muncul, dan Saya bertanya kurang dari satu jam yang lalu. Itu menakutkan, google.

Update2 Lihat jawaban saya sendiri di bawah ini, sebuah tautan akan segera hadir dengan kode yang berfungsi.

Warren P
sumber
3
[offtopic] Saya harus membuat klien SOAP yang cukup sederhana di Delphi beberapa bulan yang lalu, terbukti cukup sakit kepala dan buang-buang produktivitas, saya sarankan mencari alternatif sementara itu.
ComputerSaysTidak
13
@Dorin - Menggunakan Pengimpor WSDL sangat mudah untuk membuat klien SOAP.
Robert Love
8
@Robert itu bukan bagian yang membuat sakit kepala, itu dokumentasi dan kurangnya demo, dll. Saya harus belajar terlalu banyak tentang SOAP untuk klien sederhana, yang tidak banyak membantu saya, dari apa yang saya mengerti di Java jauh lebih mudah tetapi belum mencobanya => Saya pengguna delphi die-hard.
ComputerSaysNo
5
sabun termudah adalah .net wcf
disembunyikan
5
Ada video tutorial di edn.embarcadero.com/article/40973 . relevan?
Alex

Jawaban:

39

Saya telah memposting set lengkap demo untuk SOAP di CodeCentral sebagai item 28789 .

Ini berisi setiap satu dari demo SOAP era Delphi 2007 dari WebServicesfolder, sekarang diperbarui untuk Delphi XE dan XE2, termasuk mengubah server WAD lama menjadi server INDY VCL baru. Anda akan berpikir itu mengesankan, kecuali tidak. Sangat mudah. Cukup gunakan wizard untuk membuat proyek baru, dan kemudian tambahkan antarmuka layanan web dan unit implementasi, dan unit lain yang termasuk dalam demo lama, ke proyek. Begitu mereka ditambahkan ke proyek, mereka hanya bekerja. Demo dasar Server SOAP sangat mudah dibangun di Delphi, setelah Anda memiliki demo yang berfungsi, Anda akan menemukan itu sangat mudah untuk memodifikasi dan memperluasnya.

Demo yang paling menjawab pertanyaan yang saya ajukan di atas ada di SOAPDataModulesub-folder.

Masalah mendasar dengan demo dari era 2007 adalah dua:

  1. WAD (debugger aplikasi web) hilang. Anda harus membuat server baru menggunakan server Indy, untuk keperluan demo yang optimal, menyelamatkan Anda dari penggunaan WAD (yang hilang) atau mengatur lingkungan ISAPI, di bawah IIS, yang hampir tidak ideal untuk keperluan demo. Proyek demo baru yang saya buat disebut SoapDMServerINDY , dan terdiri dari modul data (datamod_u.pas), unit bentuk antarmuka pengguna VCL ( IndyServerVCLFormUnit.pas) dan modul web Server Indy, disebut IndyServerWebModule.pas.

  2. Demo Delphi 2007 pecah berkat praktik baru memiliki subfolder Debug / Win32 yang sekarang dapat dieksekusi demo, Anda harus naik lebih jauh. Saya memperbaiki server demo sehingga memperingatkan Anda dengan pesan kesalahan jika file data tidak dapat ditemukan, menyelamatkan Anda dari "kesalahan parsing XML" yang misterius. Saya juga menambahkan beberapa pengecekan error pada beberapa demo sehingga ia memberi tahu Anda bahwa Anda perlu menginstal interbase agar demo ini berfungsi, karena beberapa demo memerlukan Interbase diinstal dan dijalankan, dan satu membutuhkan alias yang bernama IBLOCAL agar ada, dan lebih disukai sebuah tabel yang dipanggil EMPLOYEEuntuk ada.

masukkan deskripsi gambar di sini

Elemen-elemen dari demo ini adalah server ( SoapDMServerINDY , berdasarkan kode dari SOAPDMServerWAD), dan klien SOAPDMClient yang terhubung ke demo dan memiliki dua halaman, satu halaman akan menunjukkan akses data dasar melalui remoting dataset DBGrid +, dan yang kedua Halaman menunjukkan bagaimana menjalankan metode SOAP kustom.

Untuk menggunakan demo: Anda harus memulai server, klik tombol mulai, lalu mulai klien dan klik Hubungkan.

masukkan deskripsi gambar di sini

Warren P
sumber
1
Bravo untuk usahanya! Jika Anda tidak dapat memposting demo tetap, mungkin diff / patch akan melakukannya?
Chris Thornton
8
Ini adalah prinsip lama dari komunitas open-source; Gosok gatal Anda sendiri, dan bagikan hasilnya, dan mudah-mudahan itu tidak hanya menguntungkan semua orang, tetapi membangun komunitas, seiring waktu, yang dapat melakukan hal-hal bersama yang tidak bisa kita lakukan sendiri. Jadi tolong kirimi saya laporan bug jika Anda menemukan masalah.
Warren P