นี่คือแอปพลิเคชั่นง่ายๆที่มีจุดมุ่งหมายเพื่อสร้างบริการเว็บแบบเต็มโดยใช้ Tomcat และ Jersey สำหรับฝังตัวสำหรับข้อมูลการกำหนดค่าใช้ไฟล์ YML แอปพลิเคชันนี้ยังใช้เทมเพลต JSP และ Freemarker ที่แสดงผลผ่านการโทร REST API ส่วนใหญ่มุ่งเน้นที่จะลงทะเบียนอินสแตนซ์วัตถุไปยัง ResourceConfig แทนการลงทะเบียนคลาส
แอปพลิเคชันสร้างเส้นทางบริบท Tomcat สองเส้นทาง หนึ่งสำหรับ REST Full API End Point คือ /api และอีกอันหนึ่งสำหรับหน้าเว็บคือ /webapp ที่โหลดโดยตรงจาก Tomcat Webapp Base Directory Location /src/main/webapp
File base = new File("src/main/webapp");
Context context = tomcat.addContext("/api", base.getAbsolutePath());
tomcat.addWebapp(null, "/webapp", base.getAbsolutePath());
แอปพลิเคชันนี้ใช้ไฟล์ YML สำหรับการกำหนดค่าแอปพลิเคชัน ครั้งแรกที่อ่าน configuration.yml ไฟล์และส่งผ่านการกำหนดค่าไปยังแอปพลิเคชัน
#configuration.yml
#setting server configuration
server:
port: 9292
#configure user name
user: "eigenharsha"
ResourceConfig เป็นส่วนขยายของคลาสแอปพลิเคชัน JAX-RS แต่มีวิธีการลงทะเบียนบางอย่างเพื่อให้ทรัพยากรการลงทะเบียนและผู้ให้บริการเป็นมิตรมากขึ้น ทรัพยากรที่จดทะเบียนในการใช้งานนี้ผ่านอินสแตนซ์คลาสโดยใช้ public ResourceConfig register(Object component)
jspmvcfeature และ freemarkermvcfeature ที่ใช้สำหรับเทมเพลต JSP และ freemarker, HTML/Angular/JavaScript โหลดโดยตรงในเว็บเบราว์เซอร์
final ResourceConfig config = new ResourceConfig()
.packages(Main.class.getPackage().getName())
.register(new Resource(new Core(), configuration)) // create instance of Resource and dynamically register
.register(JspMvcFeature.class) // register jspMVC
.register(FreemarkerMvcFeature.class) // register FreemarkerMVC
.property(ServletProperties.FILTER_FORWARD_ON_404, true);
return new ServletContainer(config);
มีการสอนเชิงลึกสำหรับ API โปรแกรมสำหรับการสร้างทรัพยากรมีให้ที่นี่
โครงการนี้ต้องใช้ Maven
$ git clone https://github.com/eigenharsha/jersey-mvc-jsp-freemarker-with-embedded-tomcat.git
$ cd jersey-mvc-jsp-freemarker-with-embedded-tomcat
$ mvn clean install
ฉันสร้าง Procfile สำหรับการปรับใช้กับ Heroku การสอนเชิงลึกสำหรับการปรับใช้กับ Heroku มีให้ที่นี่
$ web: sh target/bin/webapp
เมื่อแอปพลิเคชันนี้ถูกปรับใช้แล้วเราจะสามารถเข้าถึงบริการ REST นี้ได้
| ทรัพยากร | จุดสิ้นสุด |
|---|---|
| ทรัพยากรที่สร้างขึ้นแบบไดนามิกที่เรียกใช้ | http: // localhost: 9292/api/ทรัพยากร |
| ดึงข้อมูลผู้ใช้จากไฟล์ yml | http: // localhost: 9292/api/ทรัพยากร/ผู้ใช้ |
| เทมเพลต FreeMarker | http: // localhost: 9292/api/ทรัพยากร/freemarker |
| เทมเพลต JSP | http: // localhost: 9292/api/resource/jsp |
| หน้า html | http: // localhost: 9292/webapp/index.html |
คำถามหรือข้อเสนอแนะ? โปรดอย่าลังเลที่จะส่งอีเมลถึงฉันที่ [email protected]