2012-09-06 24 views
6

Tôi đang so sánh các cuống máy khách được tạo bởi Nhà phát triển ứng dụng Rational của IBM với wsimport của Java và nhận thấy rằng IBM RAD tạo ra một lớp bổ sung là lớp SOAPProxy. Lớp này cho phép thiết lập URL của dịch vụ web.Làm thế nào để tạo SoapProxy từ wsimport?

Làm cách nào để tạo lớp SOAPProxy trong wsimport của Java? Liệu wsimport của IBM RAD và wsimport của Java có giống nhau không?

Dưới đây là các lớp được tạo ra bởi IBM RAD:

  • ObjectFactory.java
  • package-info.java
  • WSCalculator_Service.java
  • WSCalculator.java
  • WSCalculatorRequest.java
  • WSCalculatorResponse.java
  • WSCalculatorSOAPProxy.java - Điều này không được tạo trên wsimport của Java. Làm thế nào tôi có thể tạo ra điều này bằng cách sử dụng wsimport của Java?
+0

Bạn đang sử dụng phiên bản RAD nào? bạn tạo mã như thế nào - bạn có đang sử dụng "Chuẩn bị triển khai" trên dự án EAR kèm theo không? Còn gì nữa không? – Isaac

Trả lời

0

Mỗi công cụ (JBoss WS, wsimport, Apache CXF, RAD, vv) tạo ra các lớp từ WSDL thực hiện hơi khác và không tạo ra cùng một lớp, mặc dù chúng thường giống nhau. Nhưng sẽ có một cách để cung cấp URL của riêng bạn trỏ đến WSDL. Tôi không quen thuộc với RAD và làm thế nào nó tạo ra các dịch vụ web, nhưng tôi đoán sẽ là lớp WSCalculator_Service có một constructor mà phải mất một tham số URL:

WSCalculator_Service service = new WSCalculator_Service(new URL("http://www.domain.com/ws/file.wsdl")); 
WSCalculator port = service.getWSCalculatorPort(); 
port.callWebService(param1, param2, ...); 

Đôi khi các nhà xây dựng mà phải mất một URL cũng đòi hỏi một QName. Tôi sẽ tìm trong nguồn và chỉ sao chép QName mà nó đang sử dụng.

0

Trong RAD 9.1 khi bạn chọn "Java Proxy" cho "Kiểu máy khách:" trong trình hướng dẫn bật lên của Trình khách dịch vụ Web, nó cũng tạo mã proxy. Các wsimport.exe bao gồm với RAD dường như không tạo ra mã proxy thông qua dòng lệnh.