JBoss ฟิวส์ - Apache CXF
ในบทนี้ให้เราพูดคุยเกี่ยวกับ Apache CXF คืออะไรและจะมีประโยชน์ในการพัฒนา SOAP และ Rest Web Services ได้อย่างไร
Apache CXF คืออะไร?
Apache CXF เป็นเฟรมเวิร์กการพัฒนาบริการเว็บที่สามารถใช้เพื่อพัฒนา SOAP และ Rest web services CXF สอดคล้องกับJAX-RS and JAX-Ws มาตรฐาน.
เป็นกรอบการพัฒนาบริการเว็บที่ใช้กันอย่างแพร่หลายที่สุดในขณะนี้ CXF ได้เรียนรู้และปรับปรุงมากกว่า Axis2 ซึ่งตอนนี้ CXF ค่อยๆถูกแทนที่
CXF เทียบกับแกน 2
CXF | แกน 2 | |
---|---|---|
การปรับปรุง | CXF เป็นเฟรมเวิร์กที่ใช้มากที่สุด ณ ตอนนี้ มีการปรับปรุงมากมายใน Axis2 |
Axis2 ค่อยๆถูกแทนที่ด้วย CXf ต้องใช้รหัสมากกว่าเมื่อเทียบกับ CXF |
ต้องระบุรหัส | CXF ต้องการรหัสน้อยกว่าเมื่อเทียบกับ Axis2 |
Axis2 ต้องการโค้ดมากกว่าในเชิงเปรียบเทียบ |
การปฏิบัติตามมาตรฐาน | CSF สอดคล้องกับ JAX-RS และ JAX-WS อย่างสมบูรณ์ |
Axis2 ไม่สอดคล้องกับ JAX-RS และ JAX-WS อย่างสมบูรณ์ |
เข้ากันได้กับสปริง | ใช่ |
ไม่ |
การแยกส่วนหน้า | ทำความสะอาดการแยกส่วนหน้าออกจากรหัส JAX-WS |
ไม่มีการแยกที่สะอาด |
สบู่
SOAP ย่อมาจาก Simple Object Access Protocol เป็นโปรโตคอลสำหรับการแลกเปลี่ยนข้อมูลที่มีโครงสร้างผ่านบริการเว็บระหว่างสองระบบ ส่วนใหญ่อาศัย XML ในการจัดโครงสร้างข้อมูลและใช้ HTTP หรือ SMTP สำหรับการเจรจาต่อรองและส่งข้อความ
มีสองวิธีในการพัฒนาบริการเว็บ SOAP -
Code first - ด้วยวิธีนี้ WSDL ถูกสร้างขึ้นจากรหัส
Contract first - ในสัญญาก่อนรหัสจะถูกสร้างขึ้นจาก WSDL
การพัฒนาสบู่โดยใช้ CXF
กำหนดค่า Maven
เพิ่มโปรไฟล์ต่อไปนี้ใน settings.xml ของ 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>
สร้างโครงกระดูก
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
เปิด URL http://localhost:8181/cxf
บริการบนเว็บควรมีรายชื่อดังนี้
Testing Web-Service
mvn -Pclient
INFO - การสร้างบริการ {http://ws.totorials.com/} PersonService จากคลาส 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] ------------------------------------------------------------------------