Java Webservice Client (Cách tốt nhất)


82

Tôi có WSDL của bên thứ ba, tôi cần viết mã bằng Java cho ứng dụng khách dịch vụ web để gọi các hoạt động trong WSDL của bên thứ ba. Ngay bây giờ, tôi đã tạo sơ khai máy khách bằng công cụ WSDL2JAVA từ Axis và sử dụng XMLbeans để liên kết dữ liệu.

  1. Cách tiếp cận tốt nhất để thực hiện JAVA này là gì?
  2. Tôi đã đọc về SAAJ, có vẻ như đó sẽ là cấp độ tiếp cận chi tiết hơn?
  3. Có cách nào khác ngoài việc sử dụng công cụ WSDL2Java, để tạo mã. Có thể wsimporttrong một lựa chọn khác. Những ưu và khuyết điểm là gì?
  4. Ai đó có thể gửi các liên kết cho một số hướng dẫn tốt về các chủ đề này không?
  5. Các tùy chọn chúng tôi cần sử dụng khi tạo mã bằng WSDL2Java là gì?

Tôi đã sử dụng một số thứ cơ bản ban đầu. Bây giờ tôi có các tùy chọn này

C:\axis2-1.5.1\bin>wsdl2java -uri  mywsdlurl  -o client -p somepackage -d xmlbeans -s -t -ssi

Câu trả lời:


163

Cách tiếp cận tốt nhất để thực hiện JAVA này là gì?

Cá nhân tôi KHÔNG sử dụng Axis 2, ngay cả khi chỉ dành cho phát triển phía máy khách. Đây là lý do tại sao tôi tránh xa nó:

  1. Tôi không thích kiến ​​trúc của nó và ghét mô hình triển khai phản năng suất của nó.
  2. Tôi thấy nó là một dự án chất lượng thấp.
  3. Tôi không thích màn trình diễn của nó (xem điểm chuẩn này so với JAX-WS RI ).
  4. Luôn luôn là một cơn ác mộng khi thiết lập các phụ thuộc (tôi sử dụng Maven và tôi luôn phải chiến đấu với hàng triệu phụ thuộc) (xem # 2)
  5. Axis đã hút nhiều thời gian và Axis2 không tốt hơn. Không, đây không phải là ý kiến ​​cá nhân, có sự đồng thuận.
  6. Tôi đau khổ một lần, không bao giờ nữa.

Lý do duy nhất mà Axis vẫn còn tồn tại là IMO vì nó được sử dụng trong Eclipse từ lâu đời. Cảm ơn chúa, điều này đã được sửa trong Eclipse Helios và tôi hy vọng Axis2 cuối cùng sẽ chết. Chỉ có nhiều ngăn xếp tốt hơn.

Tôi đã đọc về SAAJ, có vẻ như đó sẽ là cấp độ tiếp cận chi tiết hơn?

Để làm gì?

Có cách nào khác ngoài việc sử dụng công cụ WSDL2Java, để tạo mã. Có thể nhập vào một tùy chọn khác. Những ưu và khuyết điểm là gì?

Đúng! Thích một ngăn xếp JAX-WS như CXF hoặc JAX-WS RI (bạn cũng có thể đọc về Metro, Metro = JAX-WS RI + WSIT ), chúng trang nhã hơn, đơn giản hơn, dễ sử dụng hơn. Trong trường hợp của bạn, tôi chỉ sử dụng JAX-WS RI được bao gồm trong Java 6 và do đó wsimport.

Ai đó có thể gửi các liên kết cho một số hướng dẫn tốt về các chủ đề này không?

Đó là một chuyên gia khác, có rất nhiều hướng dẫn (chất lượng tốt) cho JAX-WS, hãy xem ví dụ:

Các tùy chọn chúng tôi cần sử dụng khi tạo mã bằng WSDL2Java là gì?

Không có tùy chọn, sử dụng wsimport :)

Xem thêm

Câu hỏi liên quan


4
Công việc tuyệt vời, cảm ơn bạn. Bạn cũng có thể vui lòng tạo cho WSIT một liên kết đến một số mô tả về nó (ví dụ: download.oracle.com/docs/cd/E17802_01/webservices/webservices/… )
dma_k

@dma_k Xong rồi, thêm link vào dự án WSIT (cái bạn đăng cũng hay nên người đọc có cả hai).
Pascal Thivent

1
Tôi đã +1 cho bạn về điều này từ lâu mà không cần theo dõi tất cả các liên kết. Người đàn ông còn sống, mật khẩu đó đánh nó vào mũi! :) Một lần nữa, cảm ơn vì điều này.
javamonkey79

1
+1 cho JAX-WS. Mất nhiều ngày với Axis2 ... tổng MESS (chưa kể đến hàng tấn phụ thuộc)
marcolopes

1
Này Pascal, liên kết của Glen Mazza đã bị hỏng.
Adeel Ansari

8

Tôi đã thành công tốt khi sử dụng Spring WS cho phần cuối của ứng dụng dịch vụ web - xem http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

Dự án của tôi sử dụng kết hợp:

  • XMLBeans (được tạo từ một Maven job đơn giản bằng cách sử dụng xmlbeans-maven-plugin)

  • Spring WS - sử dụng marshalSendAndReceive () giảm mã xuống một dòng để gửi và nhận

  • một số Dozer - ánh xạ các XMLBeans phức tạp thành các bean đơn giản cho GUI máy khách


1

Bạn có thể tìm thấy một số tài nguyên liên quan đến việc phát triển ứng dụng khách dịch vụ web bằng Apache axis2 tại đây.

http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using-apache-axis2.html

Bài viết dưới đây đưa ra những giải thích tốt về việc phát triển các dịch vụ web bằng Apache axis2.

http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/

http://wso2.org/library/136


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.