Java ã«ããã web ã¢ããªã±ã¼ã·ã§ã³éçºãã¨ã¯ãã (JAX-RS 2.0 / Jersey 2.4)
JAX-RS ã使ã£ã¦ Java ã§ web ã¢ããªã±ã¼ã·ã§ã³ãéçºããããã¨æã£ã¦ããJava EE å¨ãã«è©³ãããªãã¨ä½ãã©ãããã°ãããå ¨ç¶ããããªãã§ããã! ãããªãã¨ãªãã§ãã? å°ãªãã¨ãç§ã¯ããããããªãã£ãã§ãã
ãããªãããªã®ã§ãJAX-RS ã使ã£ã¦ web ã¢ããªã±ã¼ã·ã§ã³ãéçºãããã¨æã£ã人ã®ããã«ããHello world!ã ã£ã¦ããã¹ããè¿ãã ãã® web ã¢ããªã±ã¼ã·ã§ã³ãä½ãã¨ããã¾ã§èª¬æãããã¨æãã¾ãã
ãµã³ãã«ããã¸ã§ã¯ã
GitHub ä¸ã«ãµã³ãã«ããã¸ã§ã¯ããããã¦ãã¾ãã
Git 㨠JDK ãã¤ã³ã¹ãã¼ã«ããã¦ããã°ã次ã®ããã« 3 ã¤ã®ã³ãã³ããå®è¡ããã ãã§ãµã³ãã«ããã¸ã§ã¯ããæå ã®ãµã¼ãã¼ã§åãããã¨ãã§ãã¾ãã
# ããã¸ã§ã¯ããã¯ãã¼ã³ git clone -b hello_world [email protected]:nobuoka/jax-rs-jersey-application-sample.git # ãã£ã¬ã¯ããªç§»å cd jax-rs-jersey-application-sample # ãã«ããã¦ãµã¼ãã¼ãèµ·å ./gradlew jettyRun
Web ãã©ã¦ã¶ãªã©ã§ http://localhost:8080/jax-rs-jersey-application-sample/ ã«ã¢ã¯ã»ã¹ããã¨ããHello world!ã ã¨ããããã¹ããè¿ã£ã¦ããã¯ãã§ãã ãã®ãµã³ãã«ããã¸ã§ã¯ãã®è©³ç´°ããã以é説æãã¦ããã¾ãã
ãHello world!ã ãè¿ã JAX-RS/Jersey ã¢ããªã±ã¼ã·ã§ã³ã®ä½ãæ¹
ãããã JAX-RS ã¨ã¯?
REST ã¢ã¼ããã¯ãã£ã«ã®ã£ã¨ã£ã¦ web ã¢ããªã±ã¼ã·ã§ã³ãè¨è¿°ããããã® Java ã® API ã§ãã Java EE ã®ä¸é¨ã¨ãã¦å®ç¾©ããã¦ãã¾ãã
- JAX-RS 2.0: JSRs: Java Specification Requests - detail JSR# 339
- JAX-RS 1.0: JSRs: Java Specification Requests - detail JSR# 311
JAX-RS 2.0 ã®ä»æ§ã«æ¸ãã¦ããç®æ¨ (1.3 Goals) ãç°¡åã«ç´¹ä»ããã¨æ¬¡ã®ãããªãã®ãããã¾ãã
- POJO-based: API ã¯ã¢ããã¼ã·ã§ã³ã®éåã¨ããã«é¢é£ãã¦ãã POJO ã¨ä¸ç·ã«ä½¿ãããããªã¯ã©ã¹ã¨ã¤ã³ã¿ã¼ãã§ã¤ã¹ãæä¾ãã *1ã
- HTTP-centric: HTTP ã¯åºç¤çãªãããã¯ã¼ã¯ãããã³ã«ã§ããã¨èãã¦ãããJAX-RS 㯠HTTP ããã³ URI è¦ç´ ã¨ããã«å¯¾å¿ãã API ã¯ã©ã¹ã¨ã¢ããã¼ã·ã§ã³ã¨ã®ããããæä¾ããã
- Format independence: æ§ã 㪠HTTP ã¨ã³ãã£ãã£ããã£ã³ã³ãã³ãã®ç¨®é¡ã«å¯¾å¿ããã
- Container independence: æ§ã ãªç¨®é¡ã® web 層ã®ã³ã³ããã«ãããã¤å¯è½ã§ããã ãµã¼ãã¬ããã³ã³ããã JAX-WS ãããã¤ãã¸ã®ãããã¤æ¹æ³ãå®ç¾©ãã
- Inclusion in Java EE: The specification will define the environment for a Web resource class hosted in a Java EE container and will specify how to use Java EE features and components within a Web resource class
ã¤ã¾ããååçã«ã¯ JAX-RS ã§å®ç¾©ããã¦ããã¢ããã¼ã·ã§ã³ãªã©ã使ã£ã¦ JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãæ¸ããã¨ã«ãªãã¾ãã ããã¦ãJAX-RS ã«å¯¾å¿ãã HTTP ãµã¼ãã¼ããµã¼ãã¬ããã³ã³ããã§ãã®ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ããããã¨ãã§ããããã§ãã JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã¯ (çæ³çã«ã¯) ãµã¼ãã¼ã®å®è£ ã«ä¾åããªãã®ã§ãç§»æ¤æ§ãé«ããªãã¾ãã
Ruby ã Perl ã§ã Rack ã PSGI ã¨ãã£ã仿§ãå®ç¾©ããã¦ãã¾ããã大ä½ãããªæãã§ã *2
æ¬è¨äºã§ã¯ãµã¼ãã¼ãµã¤ãã®è©±ã®ã¿ãè¨è¿°ãã¾ãããJAX-RS 2.0 ã§ã¯ã¯ã©ã¤ã¢ã³ããµã¤ãç¨ã® API ãå®ç¾©ããã¾ããã
ãHello world!ã ãè¿ãã·ã³ãã«ãª JAX-RS ã¢ããªã±ã¼ã·ã§ã³
Servlet ã³ã³ããã§å®è¡ããã JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãåç´ã«å®è£ ããã¨ä¸ã®ã³ãããã®ãããªæãã«ãªãã¾ãã JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã¨ãã¦éè¦ãªé¨åã¯ã次㮠2 ã¤ã®ã¯ã©ã¹ã§ãã
Rootã¯ã©ã¹: ãHello world!ã ã表ããªã½ã¼ã¹ã¯ã©ã¹ã ã«ã¼ããã¹ã«å¯¾å¿ãããã¨ãã¢ããã¼ã·ã§ã³ã§ç¤ºãã¦ããã ãã®ããã«ã¢ããã¼ã·ã§ã³ã«ãã£ã¦ç¹å®ã® URI ã¨å¯¾å¿ä»ããããã¯ã©ã¹ã JAX-RS ã§ã¯ãªã½ã¼ã¹ã¯ã©ã¹ã¨å¼ã¶ãMyApplicationã¯ã©ã¹: ã¢ããªã±ã¼ã·ã§ã³ã®è¨å®çãå«ãã¯ã©ã¹ã ãã®getClassesã¡ã½ããã®è¿ãå¤ã«å«ã¾ããã¯ã©ã¹ããªã½ã¼ã¹ã¯ã©ã¹ã¨ãã¦ä½¿ãããã *3
ä¸ã®ã³ãããã§ã¯ãã©ã¡ãã®ã¯ã©ã¹ã JAX-RS 仿§ã«å«ã¾ããã¢ããã¼ã·ã§ã³ãã¯ã©ã¹ã®ã¿ã使ç¨ãã¦ãã¾ãã
æè¿ã® Servlet 仿§ã§ã¯ãããæ¡ä»¶ä¸ã«ãã㦠web.xml ãããã¤ã¡ã³ãè¨è¿°åãçç¥ã§ããããã㦠*4ãJAX-RS ã¢ããªã±ã¼ã·ã§ã³ã Servlet ã³ã³ããã§å®è¡ãããå ´åãç¹å®æ¡ä»¶ä¸ã§ã¯ web.xml ãçç¥ã§ãã¾ãã
ä¾ãã°ãä¸ã®ã³ãããã®ä¾ã®ããã«ãApplication ã¯ã©ã¹ ã®ãµãã¯ã©ã¹ãå«ã¾ãã¦ãã¦ããã®ã¯ã©ã¹ã« @ApplicationPath ã¢ããã¼ã·ã§ã³ ãä»ãããã¦ããå ´åã§ãServlet 3 framework pluggability mechanism ã使ãããã³ã³ããã§ä½¿ç¨ããå ´å㯠web.xml ãçç¥ã§ãã¾ã *5ã ãã£ã¦ãä¸ã®ã³ãããã®å
容㧠WAR ãã¡ã¤ã«ãä½ã£ã¦ GlassFish ãµã¼ãã¼ãªã©ã«ãããã¤ããã° JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãåãã¯ãã§ãã
JAX-RS å®è£ Jersey
JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãåä½ãããããã®å®è£ ã® 1 ã¤ã« Jersey ãããã¾ãã Jersey 㯠JAX-RS ã®åç §å®è£ ã§ãããã¾ãã
Jersey 㯠アプリケーションサーバー GlassFish ã®ä¸ã«çµã¿è¾¼ã¾ãã¦ããã®ã§ãGlassFish ä¸ã§ JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãåããå ´åã«ã¯ Jersey ã使ç¨ãããã¨ã«ãªãã§ãããã ã¾ããJersey 㯠JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ãããã¨ã®ã§ãã Servlet å®è£ ãæä¾ãã¦ããã®ã§ãJersey ãæä¾ãã¦ãã Servlet ã« JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãã©ããããã¦ãä»»æã® Servlet ã³ã³ããã§ JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ããã¨ãããã¨ãã§ãã¾ãã
ã¾ããåã« JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãåããå´ã®å®è£ ã ãã§ãªããJAX-RS ã¢ããªã±ã¼ã·ã§ã³ãå®è£ ããããã«ä¾¿å©ãª API ãæä¾ãã¦ããããããã¾ãã ä»åã®ãµã³ãã«ããã¸ã§ã¯ãã§ã Jersey ã®ä¾¿å©ãªæ©è½ã使ã£ã¦ããã®ã§ããã®ä¸ã§ç´¹ä»ãã¾ãã
Jersey ã使ã£ã¦ Application ã®ãµãã¯ã©ã¹ãããç°¡æã«å®è£
ãã
Jersey ã«ã¯ ResourceConfig ã¨ãã Application ã¯ã©ã¹ ã®ãµãã¯ã©ã¹ãå«ã¾ãã¦ãã¾ãã
- ããã¥ã¡ã³ã: Chapter 4. Deploying a RESTful Web Service
ããã使ç¨ãããã¨ã§ãä¾ãã° getClasses ã¡ã½ãããèªåã§å®è£
ããå¿
è¦ããªããªã£ãããã¾ãã ä»åã®ãµã³ãã«ããã¸ã§ã¯ãã§ã¯ãpackages ã¡ã½ããã使ã£ã¦ãªã½ã¼ã¹ã¯ã©ã¹ãå
¥ã£ã¦ããããã±ã¼ã¸åãæå®ãããªã½ã¼ã¹ã¯ã©ã¹ãã¹ãã£ãã³ã°ãããããã«å¤æ´ãã¾ããã
Jersey ã®ãã¹ããã¬ã¼ã ã¯ã¼ã¯ã使ç¨ãã
Jersey ã«ã¯ããã¹ãç¨ã®ãã¬ã¼ã ã¯ã¼ã¯ãå«ã¾ãã¦ãã¾ãã
- ããã¥ã¡ã³ã: Chapter 22. Jersey Test Framework
JUnit ãã¼ã¹ãªã®ã§ãJersey ã®ãã¹ããã¬ã¼ã ã¯ã¼ã¯ã使ãéå£ã¯ä½ãã§ãããã ãã¹ãæã«ä½¿ç¨ããã JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã³ããã¯ããã¤ãç¨æããã¦ããã®ã§ããã®ç¹ã§ãæ±ããããã§ãã ã¾ããå¤é¨ã³ã³ããã使ç¨ã§ããããã§ãã
ä»åã®ãµã³ãã«ããã¸ã§ã¯ãã§ã¯ããHello world!ã ã¨ããæååãã¬ã¹ãã³ã¹ã¨ãã¦è¿ããããã©ããã調ã¹ããã¹ããæ¸ãã¦ã¿ã¾ããã
Servlet 3.x ã³ã³ããã®ä¸ã§ Jersey ã¢ããªã±ã¼ã·ã§ã³ãåãã
ä¸ã§æ¸ããããã«ãGlassFish ãªã©ã®ä¸é¨ã®ãµã¼ãã¬ããã³ã³ããã§ã¯æç¤ºç㪠Servlet ã®æå®ãããªãã¦ã JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãèªèãã¦ãããã£ã½ãã®ã§ãããweb.xml ã«ã¡ãã㨠Servlet ãæç¤ºããªãã¨ã ã㪠Servlet 3.x ã³ã³ãããããããã§ãã (Jetty 9 ã§è©¦ããã¨ãã web.xml ã« Servlet ãæç¤ºããªãã¨åãã¦ããã¾ããã§ããã ããweb ä¸ãè¦ã¦ãã Jetty 9 ã§ã web.xml ä¸è¦ã¨ãæ¸ãã¦ãè¨äºãããã®ã§ç§ã®ä½¿ãæ¹ãããããã®ããã)
ä»åã®ä¾ã§ã¯ãJersey ãæä¾ãã ServletContainer *6 ã使ã£ã¦ãä»»æã® Servlet 3.x ã³ã³ããã«ãããã¤ã§ããããã«ãã¾ããã
Servlet 3.x ã³ã³ããç¨ã®ãµã¼ãã¼å´å®è£ ã ãã§ãªããServlet 2.x ã³ã³ããç¨ã®å®è£ ãªã©ãä»ã® JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã³ã³ããã®å®è£ ãããã¾ãã
HTTP ãµã¼ãã¼ Jetty ã§éçºæã®ç¶æ³ã確èªãã
éçºä¸ã¯ææ©ãéçºç¨ã®ãµã¼ãã¼ãèµ·åãããããããããã¤ããããããã§ãããã Gradle ã«ã¯ jetty ãã©ã°ã¤ã³ãæ¨æºã§ã¤ãã¦ããã®ã§ãéçºç¨ãµã¼ãã¼ã¨ã㦠Jetty ãèµ·åããããããã¤ãããã¨ãããã¨ããããããªã£ã¦ãã¾ãã
ã¯ã©ã¹ãã¡ã¤ã«ãæ´æ°ãããã¨ãã«ã¯ããããããã¤ããããããã§ãã IDE ã¨ä½µç¨ãã¦ãIDE å´ã§ãªã¢ã«ã¿ã¤ã ã³ã³ãã¤ã«ãèµ°ãã㦠Jetty ã«ããããããã¤ãããã¨ãããããªä½¿ãæ¹ãèãããã¾ãã
ãã¡ãã IDE å´ã«éçºãµã¼ãã¼ã¨é£æºããæ©è½ããããªããã£ã¡ã使ãã°ããããããã¾ãããã
éçºç°å¢ã®è©±
ããã¾ã§ã¯ç¹ã« IDE ã«ã¯ä¾åããªããããªæãã§æ¸ãã¦ãã¾ããããå®éã®éçºã§ã¯ IDE ã使ããã¨ã«ãªãã¨æãã¾ãã Web ä¸ã§èª¿ã¹ã¦ã¿ãã¨ããããJAX-RS ã¢ããªã±ã¼ã·ã§ã³ãæ¸ããªã NetBeans 䏿ã¨ãããããªæãããã¾ããã å®éãèªåã§ã Eclipse ã NetBeansãIntelliJ ã試ãã¦ã¿ã¾ããããJAX-RS ã¢ããªã±ã¼ã·ã§ã³ãæ¸ããªã NetBeans ã使ããããããã«æãã¾ããã
NetBeans ã使ãå ´åã¯éçºç¨ã®ãµã¼ãã¼ã¯ GlassFish ãæ¨æºãªã®ã§ãGlassFish ã使ããã¨ã«ãªãã¨æãã¾ãã NetBeans + GlassFish ã®éçºç°å¢ãæºåããè©±ã¯æ¬¡ã®è¨äºãåèã«ãªãã¾ããã
NetBeans ã§ JAX-RS ã«å¾ã£ã web ã¢ããªã±ã¼ã·ã§ã³ãä½ãæ¹æ³ã«ã¤ãã¦ã¯æ¬¡ã®ãã¥ã¼ããªã¢ã«ãåèã«ãªãã¾ãã
ããããGradle ã Maven ã使ã£ã¦ãããã¸ã§ã¯ãã NetBeans ã«ã¤ã³ãã¼ãããã¨ããããã¸ã§ã¯ã管çããã®ã¾ã¾ Gradle ã Maven ã使ã£ã¦è¡ãã®ã¯é£ããã£ã½ãæãããã¾ããã IDE ã«ããããã¸ã§ã¯ã管ç㨠IDE ã«ä¾åããªãããã¸ã§ã¯ã管çãã©ãããããã¿ãããªã®æ©ã¾ããæãããã¾ãã
ã¾ã¨ã
åã« ãHello world!ã ãè¿ããã㪠web ã¢ããªã±ã¼ã·ã§ã³ãä¾ã«ãJAX-RS ã¢ããªã±ã¼ã·ã§ã³ã®åºæ¬çãªä½ææ¹æ³ã説æãã¾ããã ä»åã¯æ¬¡ã®ãããªãã®ã使ãã¾ããã
- JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã®å®è£ ã« Jersey ãæä¾ãã¦ãã JAX-RS ã¢ããªã±ã¼ã·ã§ã³ç¨ã®ä¾¿å©æ©è½ã使ã£ã
- JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã Servlet 3.x ã³ã³ããã§å®è¡ããããã«ãJersey ãæä¾ãã¦ãã Servlet å®è£ ã使ã£ã
- JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã WAR ã«åºããããã« Gradle ã® war ãã©ã°ã¤ã³ã使ã£ã
- JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãéçºæã«ç°¡åã«åãããããã« Gradle ã® jetty ãã©ã°ã¤ã³ã使ã£ã
ä¸å£ã« JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã¨ãã£ã¦ããã©ã®ãµã¼ãã¼ã§åããããªã©ã«ãã£ã¦ä½æ³ãå¤ãã£ã¦ããã¨ãããããã®ã§ã©ãããã°ããã®ãçµæ§æ©ãã§ããã®ã§ãããä»ã®ã¨ãã IDE ã«ä¾åããªãæãã§ããã¸ã§ã¯ããä½ããªãä¸ã®ãããªæããè¯ãããã ãªã¼ã¨æã£ã¦ãã¾ãã
åèæç®
JAX-RS ã®åºæ¬çãªãã¨ãç¥ããªãæ¬¡ã®æ¬ããªã¹ã¹ã¡ã§ãã

Javaã«ããRESTfulã·ã¹ãã æ§ç¯
- ä½è : Bill Burke,arton,è éè¯äº
- åºç社/ã¡ã¼ã«ã¼: ãªã©ã¤ãªã¼ã¸ã£ãã³
- çºå£²æ¥: 2010/08/23
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 28人 ã¯ãªãã¯: 804å
- ãã®ååãå«ãããã° (40ä»¶) ãè¦ã
- ãã®æ¬ã®ææ³è¨äº: 読んだ: 『Java による RESTful システム構築』 - ひだまりソケットは壊れない
ãã¨ã¯æ¬¡ã®ãããªè¨äºãåèã«ãªãã¾ãã
- JAX-RSとかの話 — 裏紙 : Java EE å¨ããããç¨åº¦çè§£ãã¦ãã人ãªã JAX-RS ã®ã¨ã£ãããã¨ãã¦ãã®è¨äºãããããããã¨æãã¾ãã æ¬è¨äºã®ãµã³ãã«ã³ã¼ãã§ã¯ Jersey 2.4 ã使ã£ã¦ãã¾ããããã®è¨äºã§ã¯ Jersey 1 ç³»ã使ããã¦ãããã¨ã«ã¯æ³¨æãå¿ è¦ã§ãã (Jersey ã®ããã±ã¼ã¸åãéããã³ãããã¦åããªãå¯è½æ§ããã)
[Java] Jetty9(Servlet3.0)ã§JAX-RS | ã«ã¯ãµã¨ã³ã¸ãã¢ã®ããã° : Jetty 9 (Servlet 3.x) ã§ JAX-RS ã¢ããªã±ã¼ã·ã§ã³ãåããã¨ããè¨äºã ã¡ãã£ã¨åèã«ããã®ã§åèæç®ã¨ãã¦æãã¾ããããééã£ã¦ãé¨åãããã¨ãããã¨ã§åé¤ãã¦ããã¾ãã 詳ããã¯æ¬è¨äºã®ã³ã¡ã³ãåç §ã- JAX-RS実装のデプロイメントについて | OPENSQUARE.jp - BLOG : JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã®ãããã¤ã« web.xml ãããã¤ã¡ã³ãè¨è¿°åã¯çç¥ã§ããã®ãã©ãããã¨ãããã¨ã試ãã¦ããè¨äºã ãåºæ¬çã« web.xml ã¯å¿ è¦ã ã¨ããçµè«ã£ã½ããã©ãå¿ ããã web.xml ãå¿ è¦ã¨ããããã§ã¯ãªãã®ã§æ³¨æãå¿ è¦ã ããã«é¢ãã¦ãã³ã¡ã³ãé ããã®ã§ãæ¬è¨äºã®ã³ã¡ã³ãã®æ¹ãã覧ãã ããã
- eXtreme JAX-RS : HTTP 㨠JAX-RS ã®é¢ä¿ã¨ãã£ãåºç¤çãªãã¨ããããããã¤æ¹æ³ã«ã¤ãã¦ã JAX-RS ã«ãããèªè¨¼ã»èªå¯ã«ã¤ãã¦ã®è©±ãªã©ãæ¸ãããã¹ã©ã¤ãã ããããããã§ãã
- JAX-RS 2.0 ことはじめ - Programming Studio : JAX-RS 2.0 仿§ã«ã¤ãã¦ã®æ¦è¦³ã ä¸ã®ã¹ã©ã¤ãã®æ¹ããªã¹ã¹ã¡ã ã¨èè ã® Hasunuma ããããã³ã¡ã³ãé ãã¾ããã
*1:ã¤ã¾ããPOJO (= é常㮠Java ã¯ã©ã¹) ã¨ãã¦ãªã½ã¼ã¹ã表ãã¯ã©ã¹ãå®ç¾©ã§ãã
*2:å³å¯ã«ãã㨠JAX-RS 㯠HTTP ãªã¯ã¨ã¹ããã¬ã¹ãã³ã¹ãã®ãã®ã«ã¯è§¦ããªãããã«ãªã£ã¦ããã®ã§ãRack ã PSGI ã¨æ¯ã¹ãã¨å°ãé«åº¦ã§ã¯ããã¾ãã
*3:Application ã®ãµãã¯ã©ã¹ãã¢ã¼ã«ã¤ããã¡ã¤ã«ã«å«ã¾ãã¦ããªãå ´åããgetClasses ã空㮠Set ãè¿ãå ´åã«ã¯ã¢ã¼ã«ã¤ããã¡ã¤ã«å
ã®ãªã½ã¼ã¹ãã¡ã¤ã«ãå
¨ã¦æ¤ç´¢ããããããããããã§ã¯èª¬æããªãã
*4:詳ãããã¨ã¯ç¥ããªãã
*5:JAX-RS 2.0 仿§ãèªãã¨ãããªé¢¨ã«èªã¿åãããã©éããããããªãã
*6:ServletContainer ã¨ããååã§ãããServlet ã³ã³ããã§ã¯ãªã㦠JAX-RS ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã³ããã®å½¹å²ããã Servlet ã§ãã