2010-08-16 27 views

Trả lời

1

Tôi khuyên bạn nên bắt đầu với Trình khám phá dịch vụ web trong Eclipse Java EE. Điều này cho phép bạn điều tra bất kỳ dịch vụ web nào được cung cấp cho WSDL.

Hướng dẫn chuyển đổi WSDL sang Java tùy thuộc vào thư viện dịch vụ web bạn muốn sử dụng. Nếu bạn sử dụng Java 6, ngăn xếp Metro được tích hợp.

5

Bạn sẽ cần tạo một proxy Java từ Tệp WSDL. Bạn có thể thực hiện việc này bằng cách sử dụng Apche CXF hoặc Apache Axis/Axis2 để tạo Java Proxy/Java Client.

Trong Java 6, bạn cũng có thể tạo ứng dụng khách java. Trên JDK/bin có wsimport để tạo ứng dụng Dịch vụ web hoặc trong Axis, có WSDL2Java thực hiện điều tương tự như wsimport.

+0

Cách sử dụng tệp wsipmort.exe? – sarah

+0

Nhấp vào liên kết trên 'wsimport' và có giải pháp cho nó. –

12

Ngoài The Elite Gentleman's answer, sau đây là các bước của tôi, tôi sử dụng thành công để tạo ra các lớp học để có thể sử dụng webservice: Command:

wsimport -Xnocompile -keep -b binding.xml wsdlFile.wsdl 

Giải thích:

  • '-Xnocompile' ngăn chặn thế hệ các tệp .class
  • '-keep' đảm bảo rằng các tệp Java được tạo sẽ không bị xóa (theo mặc định, chỉ các tệp .class còn lại)
  • '-b' chỉ định tệp cấu hình ràng buộc. Điều này là cần thiết! (xem bên dưới)

Tôi gặp sự cố là các lớp Java chứa các lớp bao bọc JAXBElement<Type>. Vì vậy, thay vì một thành viên lớp học của loại String, tôi sẽ nhận được loại JAXBElement<String>, đó là khủng khiếp để sử dụng. Với -b switch cho wsimportbinding.xml tập tin sau đây, bạn sẽ có được loại đúng:

<jaxb:bindings version="2.0" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <jaxb:bindings> 
     <jaxb:globalBindings generateElementProperty="false" /> 
    </jaxb:bindings> 
</jaxb:bindings> 

Tôi hy vọng điều này sẽ giúp. wsimport sau đó tạo tất cả các lớp bạn cần cũng như một lớp chứa các phương thức cho tất cả các phương thức của dịch vụ web của bạn.

Theo mặc định, các phương pháp này không có thời gian chờ đọc (nói các vấn đề về mạng khi yêu cầu ...), xem here cho câu hỏi tôi đã quay lại sau đó.

4

Tôi sẽ xem xét việc tạo IDE để tự động tạo mọi thứ.

Trong Netbeans, các bước:

Kích chuột phải vào dự án của bạn, nhấp vào "thêm Web Service Client", nhập url WDSL và nhấn Finish.

Thao tác này sẽ tự động tạo proxy Java cho bạn.

Để triển khai ứng dụng khách trong mã của bạn, hãy kéo và drog phương thức được yêu cầu (nằm trong Tài liệu tham khảo dịch vụ web trong dự án của bạn), vào mã của bạn.

+0

+1 Tôi sắp giới thiệu nó. NetBeans trong trường hợp này làm cho nó tầm thường. – Rekin

0

soapUI là một trong những phần mềm cho phép bạn dễ dàng truy cập vào thế giới WSDL/SOAP. Bạn có thể tạo các yêu cầu SOAP với các giá trị thử nghiệm được gửi đến máy chủ. Bạn cũng có thể xem phản hồi SOAP của máy chủ. Điều này sẽ cho phép bạn hiểu thêm một chút về WSDL/SOAP. Để tạo mã java từ wsdl, hãy xem các đề xuất ở trên.

2

Sử dụng wsimport -keep sẽ cung cấp cho bạn tất cả các lớp học. Sau đó viết một lớp dịch vụ khác và sao chép tất cả các phương thức từ lớp dịch vụ được tạo ra. Vượt qua lớp dịch vụ của riêng bạn để wsgen -keep -p. Nó sẽ cung cấp cho bạn các lớp wrapper cần thiết (jax-ws) mà bạn sẽ quay trở lại từ các phương thức yêu cầu ủy nhiệm của bạn.

0

Điều này hiện đơn giản khi sử dụng IDE của bạn. Cho phép lấy netbeans như mẫu của chúng tôi.

  1. mở NetBeans
  2. tạo một dự án mới bằng cách nhấn vào tập tin và chọn dự án
  3. mới chọn một java thuộc thể loại và java ứng dụng dưới các ứng dụng
  4. nhấp chuột phải project vừa tạo và chọn mới và chọn web dịch vụ khách hàng.
  5. Netbeans sẽ yêu cầu một WSDL và khách hàng vị trí

    [wsdl và khách hàng vị trí] [1]

    [1]: https://i.stack.imgur.com/yWQZv.png 
    
  6. chọn WSDL và nhập URL vào của địa điểm WSDL

  7. nhấp vào kết thúc và tất cả các phương pháp sẽ được tạo cho bạn

Nhiệm vụ của bạn từ đây là gọi các phương thức và chuyển các tham số

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