Tôi hiện đang sử dụng cxf 2.4.0 và mã của tôi là người gọi đến dịch vụ web. Tôi đã có thể tạo các tệp java phía máy khách bằng cách sử dụng plugin cxf trong Maven. Câu hỏi của tôi là thực hành tốt nhất cho các tệp được tạo ra là gì? Tôi có nên biên dịch các tập tin được tạo ra và đóng gói các tệp lớp được tạo thành một tệp jar đơn lẻ hay tôi nên bao gồm tất cả các tệp java đã tạo trong đường dẫn xây dựng?CXF Wsdl2Java Thực tiễn tốt nhất
Trả lời
Đối với mã được tạo, tôi thường tạo thư mục "được tạo" dưới "chính" (main/src/java - main/generated/java) và tôi có CXF để tạo các lớp ở đó. Sau đó, tôi chỉ cần thêm thư mục "được tạo" vào đường dẫn nguồn trình biên dịch.
tôi nhận được CXF để tạo mã dưới mục tiêu, nó nhặt mục tiêu/tạo-nguồn/CXF theo mặc định, đó là tốt bởi tôi. (Nếu bạn đang sử dụng xjc để xử lý một lược đồ, nó sử dụng một sơ đồ tương tự. Maven là tuyệt vời cho các quy ước!)
Điều tôi đôi khi làm là đặt mã được tạo ra trong mô-đun maven của riêng nó. Eclipse không hoàn toàn hài lòng với mã nguồn được tạo ra (nó không giống như thực tế là việc làm sạch mã nguồn ra khỏi dưới chân của nó), vì vậy việc sửa lỗi đó khiến cho mọi việc trở nên đơn giản hơn nhiều. Sau khi tất cả, nó chỉ là một thư viện mà sẽ xảy ra được tạo ra từ một tài liệu WSDL…
NB: Điều này làm việc tốt cho dù bạn đặt tài liệu WSDL trong dự án hoặc tải xuống từ một nguồn bên ngoài trong quá trình biên dịch; Tôi chủ yếu thích cái cũ hơn vì nó cắt giảm số thứ có thể sai (đặc biệt là với các phụ thuộc XSD của các phụ thuộc WSDL của bạn, đôi khi có thể kết thúc ở một máy chủ không thích các máy khách tự động). –
Tạo tác vụ xây dựng (kiến/maven) để tạo mã và đóng gói mã đã biên dịch vào tệp jar. Khi thay đổi wsdl, bạn chỉ phải chạy lại tác vụ xây dựng.
Nếu bạn chọn tạo nguồn, hãy sử dụng chú thích Generated. Hầu hết các công cụ thế hệ wsdl đều có tùy chọn này.
- 1. JavaScript Thực tiễn tốt nhất
- 2. DTO: thực tiễn tốt nhất
- 3. Sử dụng xmlbeans bindings cho cxf wsdl2java
- 4. Thực tiễn tốt nhất của LDAP
- 5. ASP.Net MVC Cookies Thực tiễn tốt nhất
- 6. UIView Vẽ thực tiễn tốt nhất
- 7. Android strings.xml Thực tiễn tốt nhất?
- 8. iOS Facebook SDK - Thực tiễn tốt nhất?
- 9. Giao dịch NHibernate Thực tiễn tốt nhất
- 10. C#: Thực tiễn tốt nhất Debug.Print
- 11. Thực tiễn tốt nhất về Sitecore
- 12. Thực tiễn tốt nhất về giao dịch
- 13. Facebook Đăng nhập Thực tiễn tốt nhất
- 14. Python Daemon Packaging Thực tiễn tốt nhất
- 15. Thực tiễn tốt nhất của Lucene.Net
- 16. CSS @import Thực tiễn tốt nhất
- 17. Đặt mức tuân thủ Java trong CXF wsdl2java
- 18. Thực tiễn tốt nhất: Cách thực hiện tốt nhất Xếp hạng sao trong Mẫu Django
- 19. Thực tiễn tốt nhất và máy chủ SQL
- 20. Thực tiễn tốt nhất để xem thư mục tải lên?
- 21. Thực tiễn tốt nhất về GWT tổng hợp
- 22. Thực tiễn tốt nhất về tìm kiếm đảo ngược?
- 23. Đăng ký Lười biếng trên Web: Thực tiễn tốt nhất
- 24. Hibernate/JPA DB Schema Generation Thực tiễn tốt nhất
- 25. Thực tiễn tốt nhất cho các đường dẫn PHP
- 26. Thực tiễn hủy bỏ tác vụ tốt nhất
- 27. Thực tiễn tốt nhất để sử dụng nhiều tệp .gitignore
- 28. Thực tiễn tốt nhất liên quan đến initComponent() trong Ext.define()
- 29. Thực tiễn tốt nhất với số liệu lớn trong C#
- 30. Thực tiễn tốt nhất về hợp đồng mã
Cảm ơn! Lý do không làm cho các tệp lớp được tạo ra là gì? Có phải do vấn đề quản lý sự phụ thuộc vào công nghệ webservice của bạn không? Các tệp được tạo ra sẽ khóa xuống một phiên bản cụ thể của CXF và rất khó để nâng cấp và duy trì –
Không, nó chỉ là vấn đề ưu tiên. Nếu wsdl của bạn thay đổi thường xuyên, bạn phải tạo lại các nguồn và tạo lại jar. Nếu wsdl của bạn là "tĩnh", bạn có thể tạo ra một cái lọ từ mã được tạo ra của bạn. Tôi không nghĩ rằng thực sự là một thực hành tốt nhất ở đây. –