จุดประสงค์ของเซิร์ฟเล็ต CXF คืออะไร

ฉันกำลังดูการตั้งค่าโปรเจ็กต์สาธิตสำหรับบริการเว็บ Restful โดยใช้ Apache CXF ซึ่งฉันบังเอิญเจอโค้ดชิ้นหนึ่งภายใน web.xml:

    <servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

ฉันไม่เข้าใจการใช้คลาสเซิร์ฟเล็ตใน web.xml นี้จริงๆ ฉันค้นหา org.apache.cxf.transport.servlet.CXFServlet ใน Google และพบว่า:

คลาส CXFServlet ซึ่งกำหนดโดย Apache CXF ถูกสร้างขึ้นและลงทะเบียนเพื่อจัดการกับคำขอที่เข้ามา

ตอนนี้ฉันไม่เข้าใจจริงๆว่าบรรทัดนั้นหมายถึงอะไร

  1. เซิร์ฟเล็ตนี้ทำหน้าที่เป็นตัวควบคุมด้านหน้าเหมือนใน Spring MVC flow หรือไม่
  2. จุดประสงค์ที่แท้จริงของการใช้คลาสเซิร์ฟเล็ตนี้คืออะไร?
  3. CXF ใช้ Spring เพื่อจัดเตรียมการกำหนดค่า XML ของบริการที่กำหนดไว้ในโครงการอย่างไร
  4. org.glassfish.jersey.servlet.ServletContainer มีจุดประสงค์เดียวกันในการใช้งาน Jersey เช่นเดียวกับ org.apache.cxf.transport.servlet.CXFServlet กับ Apache CXF หรือไม่

ช่วยฉันชี้แจงคำถามเหล่านี้


person New2Java    schedule 07.08.2018    source แหล่งที่มา
comment
โปรดจำกัดตัวเองไว้ที่หนึ่งคำถามต่อคำถาม การถามคำถามหลายข้อจะทำให้คำถามของคุณกว้างเกินไป และทำให้เป็นการยากที่จะให้คำตอบที่ตรงเป้าหมายและครบถ้วน โดยเฉพาะประเด็นที่ 3 และ 4 ของคุณควรเป็นคำถามแยกกันจริงๆ   -  person Mark Rotteveel    schedule 07.08.2018
comment
@MarkRotteveel จะเก็บไว้ในใจตั้งแต่ครั้งหน้าเป็นต้นไป...ขอบคุณสำหรับคำแนะนำครับ   -  person New2Java    schedule 08.08.2018


คำตอบ (1)


ข้อกำหนด JAX-RS สร้างขึ้นจากข้อกำหนดของ Servlet การใช้งานแต่ละครั้งควรมี Servlet เป็นจุดเริ่มต้นของแอปพลิเคชัน เมื่อมีการร้องขอเข้ามา Servlet นั้นจะได้รับการประมวลผล CXFServlet คือการใช้งาน Servlet จุดเริ่มต้นนั้นของ CXF

เซิร์ฟเล็ตนี้ทำหน้าที่เป็นตัวควบคุมด้านหน้าเหมือนใน Spring MVC flow หรือไม่

ค่อนข้างมาก มันคล้ายคลึงกับ DispatcherServlet ของ Spring MVC

จุดประสงค์ที่แท้จริงของการใช้คลาสเซิร์ฟเล็ตนี้คืออะไร?

ดังที่กล่าวข้างต้น เป็นจุดเข้าสู่แอปพลิเคชัน JAX-RS (CXF)

CXF ใช้ Spring เพื่อจัดเตรียมการกำหนดค่า XML ของบริการที่กำหนดไว้ในโครงการอย่างไร

ใช้สปริงเพื่อเชื่อมต่อส่วนประกอบต่างๆ เชื่อมต่อทั้งหมดเข้าด้วยกัน แต่ไม่จำเป็น (ดูเพิ่มเติม)

org.glassfish.jersey.servlet.ServletContainer มีจุดประสงค์เดียวกันในการใช้งาน Jersey เช่นเดียวกับ org.apache.cxf.transport.servlet.CXFServlet กับ Apache CXF หรือไม่

ค่อนข้างมาก

person Paul Samsotha    schedule 07.08.2018
comment
ขอบคุณ @PaulSamsotha ... ฉันเดาว่าฉันสามารถเริ่มต้นด้วยข้อมูลเหล่านี้เพื่อขุดข้อมูลเพิ่มเติมในเรื่องเดียวกันได้ มันช่วยให้ฉันเข้าใจได้ง่ายนิดหน่อย แม้ว่าฉันอยากจะถามคำถามอีกหนึ่งข้อที่นี่ คุณช่วยอธิบายให้ละเอียดหน่อยได้ไหมว่า ข้อกำหนด JAX-RS ถูกสร้างขึ้นเพิ่มเติมจากข้อกำหนดของ Servlet นั่นจะช่วยฉันได้ - person New2Java; 08.08.2018
comment
JAX- RS เป็นข้อกำหนด ในเอกสารนี้ ระบุว่าควรรันแอปพลิเคชัน JAX-RS เป็นแอปพลิเคชันเซิร์ฟเล็ตในคอนเทนเนอร์เซิร์ฟเล็ต - person Paul Samsotha; 08.08.2018