2012-02-13 37 views
13

Tôi cần sử dụng dịch vụ SOAP của máy in. Có một công cụ cửa sổ để truy cập dịch vụ này và tôi đã sử dụng nó để tạo ra các yêu cầu SOAP và các đáp ứng của các hàm quan trọng mà tôi cần.Tạo WSDL cho Dịch vụ SOAP hiện có bằng lưu lượng truy cập đã capture

Bây giờ tôi nên viết một ứng dụng khách cho Linux bằng Python và tôi thấy cách dễ nhất là sử dụng thư viện suds với tệp WSDL. Nhưng tôi không có WSDL này!

Khi tôi điều tra công cụ cửa sổ (nhìn vào hexdump của các tập tin thực thi), tôi đi đến kết luận rằng có lẽ không có tệp WSDL nào cả.

Bây giờ câu hỏi của tôi là, có ai trải nghiệm dịch vụ SOAP "đảo ngược kỹ thuật" và biết các công cụ có thể hữu ích cho việc tạo tệp WSDL cho các dịch vụ hiện có không? (Googleing chưa đưa ra bất kỳ điều gì hữu ích).

Trả lời

11

Bạn đã đề cập đến đây là dịch vụ SOAP của máy in. API của máy in có được ghi trên trang web của nhà sản xuất không? Tài liệu có bao gồm WSDL không? Bạn có thể lấy WSDL từ nhà sản xuất không?

Nếu bạn có thể lấy WSDL từ nhà sản xuất thì bạn đã hoàn tất! Nếu không, bạn phải tự mình xây dựng WSDL vì tôi nghi ngờ bạn có thể tìm thấy một công cụ tạo WSDL cho các mẫu SOAP (khi làm việc với các dịch vụ web SOAP, bạn chủ yếu nhận được hai loại công cụ: WSDL + những người tạo WSDL từ mã).

Không khó để tạo WSDL nếu bạn quen với SOAP, WSDL và XSD. Bạn chỉ cần một trình soạn thảo văn bản hoặc thậm chí có thể là WSDL editor để tăng tốc độ.

Nếu bạn không hoàn toàn tin tưởng vào kiến ​​thức WSDL của mình, vẫn còn một số công cụ có thể giúp bạn tận dụng tối đa WSDL hoàn chỉnh. Đây là cách bạn có thể thực hiện:

- Trước tiên, bạn cần tạo XML schema cho tải trọng SOAP. Đối với điều này, bạn có thể tìm thấy các công cụ, thậm chí some online. Sau khi bạn có lược đồ, hãy chỉnh sửa nó theo nhu cầu của bạn bằng cách thêm, thay đổi hoặc loại bỏ các phần tử.

- Bây giờ bạn có thể sử dụng XSD để tạo WSDL. Có một số online tool thực hiện điều đó. Nó chỉ cần các loại phần tử yêu cầu/phản hồi kết thúc bằng Yêu cầu/phản hồi. Đảm bảo bạn đọc hướng dẫn.

Bạn lấy tệp XSD của mình, thay đổi tên của các thao tác để thêm hậu tố Yêu cầu/đáp ứng và chuyển nó tới Công cụ tạo web WSDL - Công cụ web. Bạn sẽ nhận được WSDL của bạn.

Bây giờ tinh chỉnh WSDL này theo ý muốn (loại bỏ các Request/Response hậu tố nếu bạn không cần đến chúng) sau đó ...

- ... chắc chắn rằng bạn kết thúc với a valid WSDL .

- Bây giờ bạn có thể lấy WSDL và sử dụng công cụ như SoapUI để tạo yêu cầu và phản hồi mẫu từ đó chỉ để xác minh rằng bạn nhận được kết quả phù hợp.

Các thông báo SoapUI có khớp với các thư bạn đã bắt đầu không? Nếu có, bạn đã hoàn tất và có thể cấp WSDL cho suds để tạo ứng dụng khách Linux. Nếu không, hãy điều chỉnh WSDL cho đến khi bạn nhận được kết quả sau đó.

+0

Cảm ơn câu trả lời của bạn. Không có gì đáng buồn là không có tài liệu. Hiện tại, chúng tôi vẫn gặp sự cố để tìm ra mật khẩu băm nhưng nếu chúng tôi vượt qua, tôi sẽ thử các đề xuất của bạn. – maufl

+1

Nếu có ai đọc điều này, tôi đã làm như sau: 1. Sử dụng trang để tạo xsd từ xml (cần nhiều tệp đầu vào) 2. Viết phần còn lại từ tay, sử dụng Eclipse để xác minh tính chính xác của wsdl. – maufl

+1

Liên kết "công cụ trực tuyến" bị hỏng – user2813274

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