Cầu chì JBoss - Apache CXF
Trong chương này, chúng ta hãy thảo luận về Apache CXF là gì và nó có thể hữu ích như thế nào trong việc phát triển SOAP và Rest Web Services.
Apache CXF là gì?
Apache CXF là một khung phát triển dịch vụ web có thể được sử dụng để phát triển các dịch vụ web SOAP và Rest. CXF hoàn toàn tuân thủJAX-RS and JAX-Ws Tiêu chuẩn.
Nó là khung phát triển dịch vụ web được sử dụng rộng rãi nhất bây giờ. CXF đã học hỏi và cải tiến hơn Axis2 hiện đang dần được thay thế bằng CXF.
CXF so với Axis2
CXF | Axis2 | |
---|---|---|
Cải tiến | CXF là khung được sử dụng nhiều nhất cho đến nay. Nó có nhiều cải tiến so với Axis2 |
Axis2 đang dần được thay thế bởi CXf. Nó yêu cầu nhiều mã hơn so với CXF |
Mã bắt buộc | CXF yêu cầu ít mã hơn so với Axis2 |
Axis2 yêu cầu nhiều mã hơn một cách tương đối |
Tuân thủ tiêu chuẩn | CSF hoàn toàn tuân thủ JAX-RS và JAX-WS |
Axis2 không hoàn toàn tuân thủ JAX-RS và JAX-WS |
Tương thích với mùa xuân | Đúng |
Không |
Tách các mặt trước | Phân tách rõ ràng giao diện người dùng khỏi mã JAX-WS |
Không có sự phân tách rõ ràng nào được cung cấp |
XÀ BÔNG TẮM
SOAP là viết tắt của Simple Object Access Protocol. Nó là một giao thức để trao đổi thông tin có cấu trúc qua các dịch vụ web giữa hai hệ thống. Nó chủ yếu dựa vào XML để cấu trúc dữ liệu và sử dụng HTTP hoặc SMTP để đàm phán và truyền thông điệp.
Có hai cách tiếp cận để phát triển các dịch vụ web SOAP -
Code first - Trong cách tiếp cận này, WSDL được tạo ra từ mã.
Contract first - Trong hợp đồng đầu tiên, mã được tạo từ WSDL.
Phát triển SOAP bằng CXF
Định cấu hình Maven
Thêm cấu hình sau vào settings.xml của Maven.
<profiles>
<profile>
<id>Jboss-Fuse</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>fusesource</id>
<url>http://repo.fusesource.com/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
</profiles>
Tạo bộ xương
mvn archetype:generate
-DarchetypeGroupId = org.apache.servicemix.tooling
-DarchetypeArtifactId = servicemix-cxf-code-first-osgi-bundle
-DarchetypeVersion=2012.01.0.redhat-60024
-DgroupId = org.fusesource.example
-DartifactId = cxf-basic
-Dversion = 1.0-SNAPSHOT
Build Web Service Project.
mvn clean install
Install web-service into Fuse using the following command.
JBossFuse:karaf@root>install -s mvn:org.fusesource.example/cxf-basic/1.0-SNAPSH
Check if bundle has registered SOQP web-service
Mở URL http://localhost:8181/cxf
Dịch vụ web sẽ được liệt kê như sau.
Testing Web-Service
mvn -Pclient
INFO - Tạo dịch vụ {http://ws.totorials.com/} PersonService từ lớp com.to
torials.ws.Person
Invoking getPerson...
getPerson._getPerson_personId = Guillaume
getPerson._getPerson_ssn = 000-000-0000
getPerson._getPerson_name = Guillaume
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.668 s
[INFO] Finished at: 2016-02-15T21:01:20+05:30
[INFO] Final Memory: 10M/37M
[INFO] ------------------------------------------------------------------------