Các dịch vụ phổ thông (Universal Services) cho pureXML sử dụng các dịch vụ Web dữ liệu (Data Web)
lượt xem 5
download
Dễ dàng cho phép các cột pureXML của bạn được tiếp cận thông qua các phương thức dịch vụ Web Susan Malaika, Chuyên viên kỹ thuật cao cấp, IBM Japan Christian Pichler, Giải pháp máy chủ dữ liệu, IBM Tóm tắt: Universal Services (các dịch vụ phổ thông) là tập các phương thức cơ sở dữ liệu, bao gồm chèn (insert), cập nhật (update), xóa (delete), và truy vấn (query), được thể hiện như là các phương thức của dịch vụ Web. Những dịch vụ này cho phép mọi người có cột pureXML™ trong cơ sở dữ liệu DB2® cài...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Các dịch vụ phổ thông (Universal Services) cho pureXML sử dụng các dịch vụ Web dữ liệu (Data Web)
- Các dịch vụ phổ thông (Universal Services) cho pureXML sử dụng các dịch vụ Web dữ liệu (Data Web) Dễ dàng cho phép các cột pureXML của bạn được tiếp cận thông qua các phương thức dịch vụ Web Susan Malaika, Chuyên viên kỹ thuật cao cấp, IBM Japan Christian Pichler, Giải pháp máy chủ dữ liệu, IBM Tóm tắt: Universal Services (các dịch vụ phổ thông) là tập các phương thức cơ sở dữ liệu, bao gồm chèn (insert), cập nhật (update), xóa (delete), và truy vấn (query), được thể hiện như là các phương thức của dịch vụ Web. Những dịch vụ này cho phép mọi người có cột pureXML™ trong cơ sở dữ liệu DB2® cài đặt các phương thức cơ sở dữ liệu của dịch vụ Web một cách nhanh chóng, chẳng hạn cho việc mô phỏng. Sau đó các dịch vụ này cho phép người dùng truy vấn và sử các dữ liệu XML lưu trữ trong cột pureXML thông qua REST hoặc SOAP, các giao thức có thể thực thi như là nền tảng cho việc phát triển hơn nữa nhiều ứng dụng khác nhau, như các biểu mẫu (form) hoặc các ứng dụng SOA. Bài viết này giúp bạn bắt đầu với việc cấu hình, thử nghiệm và thay đổi Universal Services. Để hiểu cụ thể hơn, hãy xem hướng dẫn từng bước trong tệp readme đi kèm khi tải Universal Services xuống. Giới thiệu Universal Services là tập các phương thức cơ sở dữ liệu ổn định nhưng đơn giản cho phép truy vấn và sửa đổi dữ liệu XML được lưu trong cột pureXML của cơ sở dữ liệu DB2. Các phương thức này bao gồm chèn, cập nhật, xóa và truy vấn được thể hiện như là các dịch vụ web thông qua cơ chế Data Web Service (dịch vụ Web dữ liệu). Dịch vụ Web dữ liệu cho phép các phương thức cơ sở dữ liệu như chèn hoặc cập nhật thể hiện như là các dịch vụ web mà không cần viết mã. Dịch vụ Web dữ liệu đồng thời cho phép lưu các thủ tục hay các hàm do người dùng định nghĩa để được thể hiện như các dịch vụ Web. Sự phát triển của Dịch vụ Web dữ liệu đã đề cập trong hướng dẫn developerWorks. Danh sách các hướng dẫn và bài viết được cung cấp trong phần Tài nguyên Hình 1 cung cấp tổng quan về kiến trúc của Universal Services.
- Hình 1. Tổng quan kiến trúc của Universal Services Mục tiêu của Universal Services là cho phép bất cứ cột pureXML trong cơ sở dữ liệu DB2 được truy vấn và sửa đổi thông qua các phương thức dịch vụ Web, các phương thức này được sử dụng thông qua cấu hình và các bước triển khai dễ dàng. Các bước này được mô tả trong các phần sau của bài viết, để biết chi tiết về những bước này hơn nữa, có thể tham khảo tệp readme khi tải gói Universal Services với đầy đủ chỉ dẫn từng bước. Bài viết bao gồm cách cấu hình, triển khai và sửa đổi Universal Services trên một cơ sở dữ liệu mẫu và được chia thành ba phần. Cài đặt cơ sở dữ liệu mẫu: Mô tả các cài đặt cơ sở dữ liệu mẫu mà được sử dụng trong bài viết này để thực hiện cấu hình Universal Services Cài đặt Universal Services: Mô tả các cấu hình và triển khai Universal Services Sửa đổi Universal Services: Mô tả cách thay đổi Universal Services cho phù hợp với môi trường. Chi tiết về từng bước bạn có thể tìm thấy ở phần tải xuống trong từng phần của bài viết Điều kiện tiên quyết
- Tải DB2 Express-C miễn phí Tiếp tục Tải xuống và sử dụng máy chủ dữ liệu XML và dữ liệu quan hệ chức năng đầy đủ mà không phải trả phí. Để cài đặt và chạy Universal Services, bạn cần có DB2 9.x, môi trường Java Runtime 1.5.0, và máy chủ Web (chẳng hạn WebSphere® Application Server V6.x hoặc Apache Tomcat V6.x), được cài đặt trên hệ thống của bạn. Chú ý rằng Java Runtime là một phần của quá trình cài đặt DB2. Bạn đồng thời cần tải hai tài liệu là gói IRS e-File 1120, một phần của việc trình diễn trực tuyến Industry Formats và Services, và bản thân gói Universal Services. Bạn có thể tìm các liên kết của những tài liệu này trong Tải xuống của bài viết. Những dữ liệu này là cần thiết để theo dõi từng bước mà bài viết giới thiệu. Cài đặt cơ sở dữ liệu mẫu Universal Services có thể được cài đặt trên bất kỳ cột pureXML DB2. Để thực hiện cấu hình và cài đặt của những dịch vụ này, các phần sau đây sẽ chỉ ra cách để cài đặt cơ sở dữ liệu mẫu được sử dụng trong suốt bài viết này. Cơ sở dữ liệu mẫu được tạo ra ở đây dựa trên các dữ liệu tải xuống công khai và miễn phí, là một phần của quá trình trình diễn trực tuyến DB2 pureXML được gọi là công nghiệp định dạng và dịch vụ (Industry Formats and Services) với pureXML. Mỗi một tệp được tải xuống chứa các kịch bản cho phép người sử dụng dễ dàng cài đặt một cơ sở dữ liệu được thiết kế cho một lĩnh vực cụ thể, chẳng hạn như lĩnh vực tài chính hay chăm sóc sức khỏe. Kịch bản được sử dụng trong bài viết này tạo ra một cơ sở dữ liệu mẫu và một bảng chứa một cột pureXML, sau đó tải dữ liệu mẫu vào cơ sở dữ liệu. Các tệp tải xuống chứa nhiều kịch bản như quá trình đăng ký lược đồ XML, việc xác nhận sự hợp lệ các tài liệu XML với lược đồ XML đăng ký, và truy vấn dữ liệu XML sử dụng XQuery hoặc SQL/XML, tùy theo sở thích, nhưng không được đề cập trong bài viết này. Nếu muốn biết thêm thông tin về nội dung cụ thể tải xuống, tham khảo Tài nguyên Tạo cơ sở dữ liệu mẫu Bài viết này dựa trên IRS tài liệu tải xuống e-File 1120, phiên bản điện tử của IRS Tax Form 1120. Phần này giả sử bạn đã tải và giải nén gói IRS e-File 1120 vào
- thư mục làm việc tạm thời. Thư mục làm việc tạm thời chứa các kịch bản cơ sở dữ liệu được sử dụng trong bài viết này là c:\temp\irs1120. Hình 2. Nội dung tài liệu tải xuống IRS e-File 1120, được giải nén vào thư mục làm việc tạm thời Tên của kịch bản thực hiện quá trình cài đặt cơ sở dữ liệu mẫu trên hệ thống của bạn là "start.bat" (trên Linux: "start.sh"). Để thực thi kịch bản này, mở bộ xử lý thao tác lệnh chương trình của DB2script, thay đổi đường dẫn tới thư mục làm việc hiện tại chứa nội dung tệp bạn đã tải xuống. Đường dẫn này bao gồm tệp start.bat mà bạn sắp thực thi. Do đó, tiếp tục và thực thi kịch bản start.bat. Một khi kịch bản kết thúc, bạn nên xem thông báo chỉ ra quá trình cài đặt cơ sở dữ liệu đã hoàn thành chứa trong tài liệu IRS e-File 1120. Giả sử quá trình cài đặt thành công, bây giờ bạn đã có một cơ sở dữ liệu mẫu trong hệ thống của bạn chứa cột pureXML và dữ liệu mẫu được tải lên cột pureXML. Cụ thể hơn, bảng trong cơ sở dữ liệu chứa cột pureXML có cấu trúc sau: Bảng 1. Tổng quan về bảng IRS1120 Tên cột Loại cột M ô tả Là ID duy nhất cho mỗi bản ghi được chèn vào INTEGER ID trong bảng.
- COMMENT VARCHAR(1000)Được sử dụng để lưu ghi chú cho mỗi bản ghi. Cột thứ ba của bảng là cột về loại XML, dùng để DOCUMENTXML lưu dữ liệu XML. Đây là tất cả tài liệu RS e-File 1120 XML. Dựa trên cơ sở dữ liệu mẫu, bây giờ có thể chỉ ra cách để cấu hình và cài đặt Universal Services cho một cột pureXML cụ thể, mà là chủ đề của các phần sau. Cài đặt Universal Services Trong phần này, giả sử bạn đã tải và giải nén gói Universal Services vào trong thư mục làm việc tạm thời của máy bạn. Thư mục làm việc cho Universal Services được sử dụng trong bài viết này là c:\temp\UniversalServices. Hình 3. Nội dung của gói Universal Services được giải nén ra thư mục làm việc Khi các tệp và kịch bản cần thiết đã sẵn sàng trong hệ thống, bạn có thể tiếp tục quá trình cài đặt Universal Services, bao gồm ba bước. Những bước này được mô tả chi tiết ở dưới, chỉ ra cách: Cấu hình Universal Services cho phù hợp với hệ thống cài đặt của bạn Triển khai Universal Services máy chủ ứng dụng của bạn Kiểm thử Universal Services bằng một trang đính kèm
- Cấu hình Universal Services Quá trình cấu hình Universal Services thu được thông qua một kịch bản chứa trong tài liệu tải xuống là tệp "configure.bat" (trong Linux là: "configure.sh"). Tuy nhiên, trước khi thực thi kịch bản, nó cần được chỉnh sửa cho phù hợp với cài đặt hệ thống của bạn, mà được liệt kê trong Bảng 2. Bảng 2. Tổng quan các biến được sử dụng trong kịch bản cấu hình Giá trị (theo cơ sở dữ Tên biến M ô tả liệu mẫu) C:\Program DB2INSTALLDIRĐường dẫn tới thư mục cài đặt DB2. Files\IBM\SQLLIB Tên của lược đồ cơ sở dữ liệu của IRS1120ADMIN DBSCHEMA bảng chứa cột XML. Tên của cơ sở dữ liệu mà Universal IRS1120 DBNAME Services được sử dụng với. Tên bảng chứa cột XML. IRS1120 DBTABLE Tên cột chính của bảng được chỉ ra DBPRIMARY trong DBTABLE. Cột này có thể kiểu ID INTEGER hoặc VARCHAR. DBCOMMENT Tên cột ghi chú của bảng COMMENT Tên cột XML của bảng. Đây là cột DOCUMENT DBXML chứa dữ liệu XML. Chú ý rằng ba tham biến trong Bảng 2, DBPRIMARY, DBCOMMENT, DBX ML, là các biến tương tự trong Bảng 1.
- Sửa tệp cấu hình Universal Services configuration để tương ứng với thông tin trong Bảng 2. Ví dụ set DBNAME=SAMPLEDB cần được sửa thành set DBNAME=IRS1120. Hình 4 thể hiện tệp cấu hình, sau khi nó được sửa đổi theo giá trị được cung cấp trong Bảng 2. Hình 4. Sửa tệp cấu hình configure.bat Sau khi sửa tệp configure.bat (trong Linux là: configure.sh), có thể thực thi kịch bản mà thực hiện quá trình cấu hình thực sự của Universal Services, chẳng hạn như điều chỉnh tên cột. Sau đó kịch bản tạo ra một tệp lưu trữ (WAR) ứng dụng Web, có chứa tất cả các tệp cần thiết cho ứng dụng Web Universal Services, có thể được triển khai đến máy chủ ứng dụng của bạn. Nhớ rằng, kịch bản phải đ ược thực thi trên bộ xử lý thao tác lệnh chương trình của DB2, nếu không quá trình thực thi sẽ thất bại. Triển khai Universal Services Sửa đổi và thực thi kịch bản configure.bat, như đã mô tả ở phần trước, tạo ra một tệp WAR có thể triển khai được trên máy chủ ứng dụng của bạn. Trước khi triển khai tệp WAR tới máy chủ ứng dụng, cần cấu hình nguồn dữ liệu (data source) trên máy chủ cho phép Universal Services tiếp cận được cơ sở dữ liệu DB2.
- Để cài đặt nguồn dữ liệu, tiếp tục quá trình cấu hình chuẩn của máy chủ ứng dụng. Yêu cầu duy nhất là trong quá trình cài đặt, để ý đến tên nguồn dữ liệu phải đáp ứng theo mẫu sau: jdbc/[database name]. Tên nguồn dữ liệu sử dụng trong bài viết này là jdbc/irs1120. Nếu cần thêm thông tin để cài đặt nguồn dữ liệu, tham khảo hướng dẫn của máy chủ ứng dụng của bạn hoặc đọc tệp readme chứa trong t ài liệu tải xuống Universal Services. Tệp WAR được tạo ra có thể được tìm thấy trên thư mục con, được đặt trong thư mục làm việc c:\temp\UniversalServices. Cụ thể, thư mục war chứa hai thư mục con: tomcat và war. Thư mục tomcat chứa tệp WAR để cài đặt trên Apache Tomcat V6.x, trong khi thư mục chứa trong tệp WAR để cài đặt trên WebSphere Application Server V6.x. Để cài đặt tệp WAR trên máy chủ ứng dụng của bạn, làm theo hướng dẫn chuẩn. Nếu cần thêm thông tin, hãy tham khảo hướng dẫn máy chủ ứng dụng của bạn, hoặc đọc tệp readme chứa trong gói Universal Services được tải xuống. Bây giờ bạn có thể kiểm tra quá trình cài đặt bằng trang web thử nghiệm Universal Services, mà đã có sẵn trong quá trình triển khai tệp WAR. Để tiến hành kiểm tra, tiếp tục với phần tiếp theo. Bước thứ hai là để triển khai tệp WAR thực sự trên máy chủ ứng dụng. Tuy nhiên, nó cần được thông báo do sự khác nhau trong các thành phần của dịch vụ Web đòi hỏi phải có WebSphere Application Server V6.x và Apache Tomcat V6.x, kịch bản cấu hình tạo ra hai tệp War riêng, mỗi tệp cho một ứng dụng máy chủ trên. Kiểm tra Universal Services Để đảm bảo quá trình cài đặt và cấu hình Universal Services trên hệ thống của bạn thành công, những dịch vụ này cần được kiểm thử. Cách dễ dàng nhất là sử dụng trang HTML đơn giản, đã có sẵn trong máy chủ ứng dụng trong quá trình triển khai Universal Services. Có thể tiếp cận trang web thử nghiệm Universal Services bằng cách đăng nhập trên trình duyệt đường dẫn URL http://localhost:8080/UniversalServices/testServices.html. Chú ý r ằng, tùy vào cài đặt hệ thống, tên máy và cổng của máy chủ mà có thể cần được điều chỉnh phù hợp.
- Hình 5. Hình ảnh trang web thử nghiệm Đây là trang thử nghiệm đơn giản nhất cho phép bạn chèn, cập nhật, xóa và truy vấn dữ liệu XML trong cơ sở dữ liệu của bạn thông qua Universal Services. Các dịch vụ Web thể hiện qua các nút trên trang thử nghiệm. Hình 6 cho thấy các dịch vụ Web trả lời. Sau hoạt động của dịch vụ Web, getPrimaryKeys đ ược thể hiện thông nút bấm được cung cấp trên trang thử nghiệm. Hình 6. Hồi đáp sau khi hoạt động dịch vụ Web getPrimaryKeys được thực
- hiện Sửa đổi Universal Services Nếu bạn cần phải sửa đổi Universal Services, ví dụ để giới thiệu một tham số mới, bạn có thể mở Universal Services Data Development Project được cung cấp trong phần tải xuống của Universal Services Data Project bằng Data Studio. Những phần sau mô tả cách để nạp vào Project vào Data Studio và cách thức cấu hình dự án đã được nạp vào và Data Studio (ví dụ, điều chỉnh các kết nối cơ sở dữ liệu hoặc điều chỉnh các tên lược đồ cơ sở dữ liệu). Để thực hiện theo các bước được nêu dưới đây, khởi động Data Studio. Nạp vào Universal Services Data Development Project Một khi Data Studio được mở, bấm chuột phải vào vùng trắng trong Data Project Explorer, một thực đơn con xuất hiện. Trong thực đơn con, chọn Import, xem Hình 7.
- Hình 7. Chọn Import để tải Universal Services Data Development Project Thủ thuật Import (Import Wizard) sẽ được mở trong một cửa sổ riêng (xem Hình 8). Trong bước đầu tiên của thủ thuật chọn Existing Projects into Workspace, trong nhóm "General." Chọn Next để tiếp tục.
- Hình 8. Import Wizard -- Chọn nguồn để nạp vào Bước tiếp theo là xác định tệp lưu trữ Universal Services Data Development Project. Để thực hiện, chọn Select archive file. Sau đó, nhấn Browse và chọn tệp lưu trữ. Tệp đó gọi là universal_services_data_studio_project.zip, và được tìm thấy trên thư mục làm việc tạm thời trên máy của bạn trong quá trình giải nén gói Universal Services. Thư mục làm việc tạm thời trong bài viết này là c:\temp\UniversalServices. Sau khi tệp lưu trữ được chọn, Import Wizard liệt kê tất cả các dự án đang có trong phần lưu trữ (xem Hình 9). Bởi vì tệp lưu trữ được cung cấp trong phần tải xuống có chứa duy nhất Data Development Project cho Universal Services, n ên chỉ một dự án được liệt kê trong phần Projects. Lưu ý rằng trong trường bạn đã có một dự án trong không gian làm việc(workspace) mà có cùng tên dự án ("services") như Universal Services, Import Wizard sẽ không liệt kê dự án trong phần Projects. Do đó, Import Wizard không cho phép bạn nạp vào Universal Services Data Development project.
- Hình 9. Import Wizard -- Chọn tệp lưu trữ Sau khi tệp lưu trữ và dự án được chọn, bấm vào Finish để kết thúc quá trình nạp vào dự án. Sau khi quá trình nạp vào đã kết thúc, bạn có thể xem dự án Universal Services Data Development project trong Data Project Explorer (xem Hình 10). Hình 10. Dự án Data Development Project đã được nạp vào trong Data
- Project Explorer Cấu hình kết nối cơ sở dữ liệu Sau khi dự án Universal Services Data Development Project được mở trong không gian làm việc, cần cấu hình kết nối cơ sở dữ liệu. Hình 10 chỉ cho thấy dự án sử dụng kết nối cơ sở dữ liệu tên là "Universal Services Database Connection." Tuy nhiên, bạn có thấy kết nối tham chiếu đến cơ sở dữ liệu tên là SAMPLEDB, trên localhost, trên cổng 50000. Để điều chỉnh thông số kết nối cơ sở dữ liệu cho phù hợp với cấu hình máy bạn, bấm chuột phải vào kết nối cơ sở dữ liệu Universal Services Database Connection, trên Database Explorer, và chọn Edit Connection (xem Hình 11)
- Hình 11. Tiếp cận thông số kết nối cơ sở dữ liệu thông qua Database Explorer Một cửa sổ riêng mở ra cho phép bạn điều chỉnh các thông số kết nối cơ sở dữ liệu, như tên cơ sở dữ liệu (database name), tên máy chủ (hostname), số cổng (port number), thông tin người dùng (user information), và nhiều tham số khác nhau (xem hình 12). Lưu ý rằng bạn có kiểm tra các thông số cấu hình một cách nhanh chóng bằng cách bấm vào Kiểm tra kết nối. Đối với Linux: Bạn có thể mở dự án Data Development Project trong Data Studio trên Linux, tham số Class location:, mà xác định vị trí trình điều khiển (driver) cơ sở dữ liệu DB2, cần được điều chỉnh. Trình điều khiển cơ sở dữ liệu được đặt trong thư mục java của thư mục cài đặt java (ví dụ, /home/db2inst1/sqllib/java).
- Hình 12. Các thông số kết nối cơ sở dữ liệu Cấu hình tên lược đồ cơ sở dữ liệu Tất cả các phương thức SQL được thể hiện như là các phương thức dịch vụ Web, và dự án bạn đã mở lúc trước trong không gian làm việc, sử dụng các câu lệnh SQL đầy đủ. Cái thứ hai nghĩa là tên lược đồ cơ sở dữ liệu đủ tiêu chuẩn làm tên bảng (chẳng hạn SELECT ID FROM IRS1120ADMIN.IRS1120).
- Một giải pháp thay thế là không mã hóa tên lược đồ cơ sở dữ liệu trong câu lệnh SQL nhưng sử dụng tên lược đồ cơ sở dữ liệu mặc định thay thế. Một cách để điều chỉnh tên lược đồ là tiếp cận và sửa thuộc tính trong Universal Services Data Development Project. Để thực hiện, bấm chuột phải Universal Services Data Development Projectvà chọn Properties (xem hình 13). Hình 13. Tiếp cận thuộc tính Data Development Project Cửa sổ Properties cho Universal Services Data Development Project mở. Sau đó bấm Development vào thực đơn bên trái cửa sổ, bạn có thể thiết lập tên lược đồ cơ sở dữ liệu sử dụng trong các câu lệnh SQL.
- Hình 14. Chỉnh sửa tên lược đồ cơ sở dữ liệu Quan tâm thêm Khi dự án đang mở được điều chỉnh cho phù hợp với cấu hình hệ thống, bạn có thể thay đổi và triển khai Universal Services thông qua Data Studio. Chú ý một phương thức, chẳng hạn runxqueryXML đòi hỏi một hàm do người sử dụng định nghĩa để đăng ký. Để thực hiện, một kịch bản SQL tên là "createXQueryXMLUDF.sql" được cung cấp trong dự án Data Studio Development Project. Tài nguyên về cách tạo và thể hiện các phương thức mới sử dụng Data Studio có thể tìm thấy trong Tài nguyên của bài viết. Lựa chọn khác Khi tùy biến các phương thức cơ sở dữ liệu để chứa thêm các tham số đầu vào và đầu ra, các tham số đánh dấu sẽ được sử dụng. Universal Services hỗ trợ hai loại đánh dấu tham số. Cách thứ nhất thứ nhất là dùng đánh dấu tham số "?", tách tên tham số liên kết để mặc định việc tạo tên một cách tự động, chẳng hạn như "p1"hay"p2". Cách thứ hai là sử dụng đánh dấu tham số ":" và xâu liên kết định nghĩa tham số, chẳng hạn như ":id".
- Sau đây là ví dụ để minh họa hai cách đánh dấu tham số trên tốt hơn. Ví dụ dựa trên một phương thức cơ sở dữ liệu của Universal Services dùng để xóa một bản ghi khỏi bảng. Các phương thức liệt kê dưới đây có cùng mục đích giống nhau nhưng sử dụng các loại đánh dấu tham số khác nhau: Cách 1: DELETE FROM DB2ADMIN.SAMPLETABLE WHERE ID = ? Cách 2: DELETE FROM DB2ADMIN.SAMPLETABLE WHERE ID = :id Dựa vào các phương thức cơ sở dữ liệu, một tệp Web Service Description Language (WSDL) được tạo ra thông qua Data Studio. Tệp WSDL mô tả các phương thức dịch vụ Web, bao gồm các tham số của chúng. Tệp WDSL được tạo ra phụ thuộc vào loại đánh dấu tham số được sử dụng trong phương thức cơ sở dữ liệu. Đối với cách 1, tên tham số trong toán tử dịch vụ Web là các tên được tạo ra một cách tự động, ví dụ "p1" hoặc "p2" (xem ví dụ 1). Ví dụ 1. Trích từ tệp WSDL mà được tạo ra từ cách 1 ...
- ... Đối với cách 2, các tên tham số trong các phương thức dịch vụ Web sử dụng các xâu ký tự giống nhau mà được chỉ rõ trong các phương thức cơ sở dữ liệu, ví dụ,"id" hoặc "document" (xem ví dụ 2). Ví dụ 2. Trích từ tệp WSDL được tạo ra từ cách 2 ...
CÓ THỂ BẠN MUỐN DOWNLOAD
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn