æ
å ±æè¡ã®éçºã¯ãã€ã³ã¿ãŒãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®äœ¿çšã«ãŸããŸãé¢äžããŠããŸãã 忣ããã³ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã¯ãHTTPãä»ããæ
å ±äº€æããŸããŸã䜿çšããŠããŸãã åæã«ãã¯ã©ã€ã¢ã³ã/ãµãŒããŒã¢ãŒããã¯ãã£ã¯ãéçºãäœæãããã³éçšã«ãããŠæãåºãæ®åããŠããã·ã³ãã«ãªãŸãŸã§ãã ã¯ã©ã€ã¢ã³ããµãŒããŒã¢ãŒããã¯ãã£ã®ååã¯åçŽã§ãããµãŒããŒã¯ãªãœãŒã¹ãæäŸããã¯ã©ã€ã¢ã³ãã¯ãã®ãªãœãŒã¹ã䜿çšããŸãã
ãã®èšäºã¯ãåçŽãªWebãµãŒãã¹ã®äœæãçè§£ããããšãã詊ã¿ã§ãã åçŽã§ãå®çšçã§ãååã«èª¬æãããäŸã¯ãæè¡ã®ç ç©¶ã«ãããŠãæç®ãèªããããå€ãã®å©çãããããããšããããããŸãã ãã®èšäºã§ã¯ãEclipseãšçµã¿èŸŒã¿ã®JettyãµãŒããŒã䜿çšããŠãRESTãJSONã«åºã¥ãåçŽãªèšç®æ©WebãµãŒãã¹ã®äœæã«ã€ããŠèª¬æããŸãã
ææŠãã
2ã€ã®æ°å€ã䜿çšããåçŽãªç®è¡æŒç®ãå®è£
ããWebãµãŒãã¹ãšããŠã®èšç®æ©ã®äœæãæ€èšããŠãã ããã WebãµãŒãã¹ã¯ãå
¥åãã©ã¡ãŒã¿ãŒãåãå
¥ããŠçµæãçæãããªã¢ãŒã颿°ãšåãæ¹æ³ã§èããããšãã§ããŸãã ãããã£ãŠããã®æ©èœã¯æ¬¡ã®ããã«èª¬æã§ããŸãã
å
¥åãã©ã¡ãŒã¿ãŒïŒ
- aã¯æåã®åŒæ°ã§ãã
- bã¯2çªç®ã®åŒæ°ã§ãã
- opã¯ã+ã-ã/ã*ã®ããããã®èšå·ã§è¡šãããç®è¡æŒç®åã§ãã
åºåãã©ã¡ãŒã¿ãŒïŒ
- ãšã©ãŒãæåã®åŒæ°ã§ãã
- çµæã¯2çªç®ã®åŒæ°ã§ãã
ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®äŸ-éé¡
ãªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15ïŒop = +çãã¯ïŒ
{ âerrorâ:0, âresultâ:12.93 }
ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®äŸ-éã
ãªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15ïŒop =-çãã¯ïŒ
{ âerrorâ:0, âresultâ:4.63 }
ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®äŸ-補å
ãªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15ïŒop = *çãã¯ïŒ
{ âerrorâ:0, âresultâ:36.437 }
ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®äŸ-ãã©ã€ããŒã
ãªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15ïŒop = /çãã¯ïŒ
{ âerrorâ:0, âresultâ:2.1156626506 }
èŠæ±/å¿çã®äŸ-0é€ç®ãšã©ãŒ
ãªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 0ïŒop = /çãã¯ïŒ
{ âerrorâ:1 }
ãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®äŸ-ãšã©ãŒãç¡å¹ãªæ°å€åœ¢åŒã
ãªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15mïŒop = /çãã¯ïŒ
{ âerrorâ:1 }
Jettyã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«
Jettyã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®äœæã«éåžžã«äŸ¿å©ã§ãã ãããçµã¿èŸŒã¿ãµãŒããŒãšããŠäœ¿çšãããšãéçºè
ã¯ãèµ·åãããã³ã«å€éšãµãŒããŒã«Webã¢ããªã±ãŒã·ã§ã³ããããã€ããå¿
èŠããªããªããŸãã ãŸããããã«ã¯å€éšã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®ã€ã³ã¹ããŒã«ã¯å¿
èŠãããŸããã
ã»ãšãã©ã®å ŽåããµãŒããŒã©ã€ãã©ãªãããŠã³ããŒããããŠãŒã¶ãŒã©ã€ãã©ãªãšããŠEclipseã«ç»é²ããŠããããã®ã©ã€ãã©ãªãžã®ãªã³ã¯ã䜿çšããã ãã§ååã§ãã ãã®ã¢ãããŒãã¯ãMavenãGradleãªã©ã®ã¢ã»ã³ããªèªååããŒã«ã®å¯çšæ§ãå¿
èŠãšããªããããåå¿è
ã®Javaããã°ã©ããŒã«ãšã£ãŠã¯ç°¡åã§ãã
次ã®ããã«ãå¿
èŠãªJettyã©ã€ãã©ãªãEclipseã«ã€ã³ã¹ããŒã«ããŸãã
1.å§çž®ãã¡ã€ã«ã
http://download.eclipse.org/jetty/ããããŠã³ããŒãããŠè§£åããŸãã
2.ãããžã§ã¯ãã®ã«ãŒããã©ã«ããŒïŒéåžžã¯ã¯ãŒã¯ã¹ããŒã¹ïŒã§ãjarsãã©ã«ããŒãšãã®äžã®jettyãã©ã«ããŒãäœæããŸãã
3. libãã©ã«ããŒã®å
容ã以åã«è§£åãããã¡ã€ã«ããäœæãããjettyãã©ã«ããŒã«ã³ããŒããŸãã
4.
ãŠã£ã³ããŠ/èšå®ã¡ãã¥ãŒã§ã
Java /ãã«ããã¹/ãŠãŒã¶ãŒã©ã€ãã©ãªã»ã¯ã·ã§ã³ãéžæã
ãŸã ã
5. [
æ°èŠ... ]ãã¿ã³ãã¯ãªãã¯ãã
æ¡æ©ã©ã€ãã©ãª
åãå
¥åããŠ[OK]ãã¿ã³ãã¯ãªãã¯ããŸãã
6.次ã«ã
PreferencesãŠã£ã³ããŠã§æ°ããäœæãããjettyã©ã€ãã©ãªãéžæããç¶æ
ã§ã
Add External JARs ...ãã¿ã³ãã¯ãªãã¯ããŸãã ã
JARéžæããŠã£ã³ããŠã§ã以åã«äœæããjars / jettyãã©ã«ããŒãããã¹ãŠã®JARãã¡ã€ã«ãéžæããŸãã
7.ãã®çµæãJARãã¡ã€ã«ã¯jettyãŠãŒã¶ãŒã©ã€ãã©ãªã«ã¢ããããŒããããŸãã ãµããã©ã«ããŒå
ã®ãã¡ã€ã«ã¯ããŠã³ããŒããããŸããããã»ãšãã©ã®å Žåããããã¯å¿
èŠãããŸããã
WebãµãŒããŒãããžã§ã¯ãã®äœæ
[ãã¡ã€ã« ]
/ [æ°èŠ ]ã¡ãã¥ãŒã§ã[
åçWebãããžã§ã¯ã ]ãéžæããŸãã [
ãããžã§ã¯ãå]ãã£ãŒã«ãã«
ã SCalculator
ãšå
¥åããŸãã [
å®äº ]ãã¿ã³ãã¯ãªãã¯ããŸãã
æ¡æ©ã©ã€ãã©ãªãžã®ãªã³ã¯ã远å ãã
äœæçŽåŸã®ãããžã§ã¯ãã«ã¯ãæ¡æ©ã©ã€ãã©ãªãžã®ãªã³ã¯ãå«ãŸããŠããŸããã æ¥ç¶ãããã©ã€ãã©ãªã¯ã
ãããžã§ã¯ããšã¯ã¹ãããŒã©ã® [
ã©ã€ãã©ãª ]ãµãã¿ãã®[
JavaãªãœãŒã¹ ]ã¿ãã§è¡šç€ºã§ããŸãã
ãããžã§ã¯ãã©ãã«ãå³ã¯ãªãã¯ããŠãã³ã³ããã¹ãã¡ãã¥ãŒã§[
ãã«ããã¹ ]ãéžæãã[
ãã«ããã¹ã® æ§æ... ]ãéžæã
ãŸãã [
ã©ã€ãã©ãª ]ããŒãžã®[
Javaãã«ããã¹ ]ã¿ãã§ã[
ã©ã€ãã©ãªã 远å ... ]ãã¿ã³ãã¯ãªãã¯ããŸãã
[
ãŠãŒã¶ãŒã©ã€ãã©ãª ]ãéžæãã[
次㞠]ãã¯ãªãã¯ããŸãã jettyãéžæãã[
å®äº ]ãã¯ãªãã¯ããŸãã
ãã®çµæããŠãŒã¶ãŒjettyã©ã€ãã©ãªãå«ãŸããŠããããšã確èªããåŸã
Project Explorerã§ã©ã€ãã©ãªãžã®ãªã³ã¯ã確èªã§ããŸãã
èšç®æ©ãµãŒãã¬ããã®äœæ
ãµãŒãã¬ãããã¡ã€ã«ã®äœæ
èšç®æ©ãµãŒãã¬ããã«ã¯ãå
¥åããŒã¿ã®ãã³ãŒããå¿çã®èšç®ããã³çæã®ããã®ãã¹ãŠã®ã³ãŒããå«ãŸããŸãã ãµãŒãã¬ãããäœæããã«ã¯ã
ãããžã§ã¯ããšã¯ã¹ãããŒã©ãŒããã«ã§ãããžã§ã¯ãåãå³ã¯ãªãã¯ããã³ã³ããã¹ãã¡ãã¥ãŒã§[
æ°èŠ ]ã[
ãµãŒãã¬ãã ]ã®é ã«éžæããŸãã ã¯ã©ã¹åã«ãSrvltCalculatorããšå
¥åãã[
å®äº ]ãã¿ã³ãã¯ãªãã¯ããŸãã
Project Explorerããã«
ã§ ãäœæãããSrvltCalculator.javaãã¡ã€ã«ã確èªã§ããŸãã ãã®å
容ã¯ãšãã£ã¿ãŒã§èªåçã«éãããŸãã
åé·ã³ãŒãã®åé€
ããã«ãã¡ã€ã«ãç·šéããããããã«ã¯ãæªäœ¿çšã®SrvltCalculatorãµãŒãã¬ããã³ã³ã¹ãã©ã¯ã¿ãŒãšdoPostã¡ãœãããåé€ããŸãã
ã€ã³ããŒããããã¢ãžã¥ãŒã«ã®è¿œå
ãµãŒãã¬ãããã¡ã€ã«ã«è¿œå ãããã³ãŒãã«ã¯ãã¢ãžã¥ãŒã«ãå«ããããã«æ¬¡ã®ã³ãŒãè¡ãå¿
èŠã§ãã ãããã®è¡ã远å ããŸãã
import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
doGetã¡ãœããã«ã³ãŒãã远å ãã
doGetã¡ãœããã«ã¯ãGETèŠæ±ãåŠçããããã®ã³ãŒããå«ãŸããŠããŸãã ãã®ã¡ãœããã§ã¯ã次ã®ã³ãŒãã¹ãããããé çªã«è¿œå ããŸãã
察å¿ããæåå倿°ã®ãã©ã¡ãŒã¿ãŒã®åä¿¡ã
String str_a = request.getParameter("a"); String str_b = request.getParameter("b"); String str_op = request.getParameter("op");
æåå倿°ãããã³ãŒããããæ°å€ãã©ã¡ãŒã¿ãŒaããã³bãåãå
¥ãã倿°ã®å®£èšã
double value_a = 0; double value_b = 0;
ãšã©ãŒnoErrorã®çºçãå¶åŸ¡ãã倿°ã®å®£èšã
boolean noError = true;
察å¿ããæåå倿°ããæ°å€ãã©ã¡ãŒã¿ãŒaããã³bããã³ãŒãããããšããŸããã ãã³ãŒãã倱æããå Žåã倿°noErrorã¯falseã§ãã
try { value_a = Double.parseDouble(str_a); value_b = Double.parseDouble(str_b); } catch ( Exception ex ) { noError = false; }
æ°å€ãã©ã¡ãŒã¿ãŒã®ãã³ãŒãäžã«ãšã©ãŒãçºçããªãã£ãå Žåã®ã±ãŒã¹ã®ã³ãŒãã»ã¯ã·ã§ã³ãéããŸãã
if ( noError ) {
æ°å€å€æ°ã®çµæã宣èšããŠçµæãä¿åããŸãã
double result = 0;
tryã»ã¯ã·ã§ã³ãéããŠãèšç®ããã³ãšã©ãŒå¶åŸ¡ã³ãŒããæå¹ã«ããŸãã ç®è¡æŒç®ã«ããæµ®åå°æ°ç¹ãšã©ãŒãçºçããå¯èœæ§ããããããã»ã¯ã·ã§ã³ãå¿
èŠã§ãã
try {
å ç®æŒç®ã®å ŽåãfunctionSum颿°ãåŒã³åºããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
if (str_op.equals("+")) result = functionSum( value_a, value_b ); else
æžç®æŒç®ã®å ŽåãfunctionDif颿°ãåŒã³åºããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
if (str_op.equals("-")) result = functionDif( value_a, value_b ); else
ä¹ç®æŒç®ã®å ŽåãfunctionMul颿°ãåŒã³åºããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
if (str_op.equals("*")) result = functionMul( value_a, value_b ); else
é€ç®æŒç®ã®å ŽåãfunctionDiv颿°ãåŒã³åºããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã ææ°ã®ãã©ãããã©ãŒã ã§ã¯doubleåã§ã¯double divisionãšã©ãŒãçºçããªãããã逿°ããŒãã«ãªãç¶æ³ãæåã§å¶åŸ¡ããŸãã
if (str_op.equals("/") && (value_b!=0)) result = functionDiv( value_a, value_b ); else
4ã€ã®æäœãã¹ãŠããã§ãã¯ããåŸããšã©ãŒãªãã®ãã§ãã¯ããã¯ã¹ãfalseã«èšå®ããŸãã ããã¯ãç®è¡æŒç®ãèå¥ãããªãããšãèå¥ããããã«è¡ãããŸãã
noError = false;
äŸå€ãçºçããå Žåãããšã©ãŒãªãããã©ã°ããfalseãã«èšå®ããŠtryãããã¯ãéããŸãã
} catch ( Exception ex ) { noError = false; }
ãšã©ãŒãçºçããŠããªãå Žåã¯ãdoSetResultã¡ãœããã䜿çšããŠçµæãéä¿¡ããŸããããã«ã€ããŠã¯ã以äžã§èª¬æããŸãã doGetã¡ãœããã¯ãã®ã¿ã¹ã¯ãå®äºãããããreturnã¹ããŒãã¡ã³ãã䜿çšããŠæ»ããŸãã
if ( noError ) { doSetResult( response, result ); return; }
ã¹ããŒãã¡ã³ããifïŒnoErrorïŒ{ãã§å§ãŸãã»ã¯ã·ã§ã³ãéããŸãã
}
ãªã¯ãšã¹ãã®åŠçäžã«ãšã©ãŒãçºçããdoGet颿°ãèšç®ã«æåããŠãå¶åŸ¡ãè¿ããªããããdoSetErrorã¡ãœããã䜿çšããŠãšã©ãŒã¡ãã»ãŒãžãè¿ããŸããããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã
doSetError( response );
ã¯ãã¹ãã¡ã€ã³ãªã¯ãšã¹ã
ã¯ãã¹ãã¡ã€ã³ãªã¯ãšã¹ãïŒã¯ãã¹ãã¡ã€ã³ãªã¯ãšã¹ããšãåŒã°ããŸãïŒã¯ããªã¯ãšã¹ãããµãŒãã³ã°ãµãŒããŒã®ãããã¯ãŒã¯ãã¡ã€ã³å€ã«ããWebããŒãžããéä¿¡ããããšãã«çºçããŸãã ãã®ãããªèŠæ±ã«å¯Ÿããå¿çã¯ãéåžžãã¯ãã¹ãã¡ã€ã³æ»æã«å¯Ÿæããããã«ãããã¯ãããŸãã ãµãŒããŒå¿çã®ãããã¯ãç¡å¹ã«ããã«ã¯ãããããŒAccess-Control-Allow-OriginïŒ*ãèšå®ã§ããŸãã
DoSetResultã¡ãœãã
doSetResultã¡ãœããã¯ãå¿çãšHTTPå¿çã«å¿
èŠãªèšå®ããã©ãŒãããããŸãã ã¡ãœããæååã®æå³ã¯æ¬¡ã®ãšããã§ãã
- æåã®è¡ã¯ãJSONå¿çãçæããŸãã å¿çæ§é ã¯åçŽãªã®ã§ãç¹æ®ãªJSONã©ã€ãã©ãªã¯äœ¿çšãããŸããã
- 2è¡ç®ã§ã¯ãJSONå¿çã¯UTF-8ãšã³ã³ãŒãã䜿çšããŠãHTTPå¿çã®æ¬æã«ãã€ããªåœ¢åŒã§ãšã³ã³ãŒããããŸãã
- 3è¡ç®ã¯ãHTTPå¿çæ¬æã®ã³ã³ãã³ãã¿ã€ãã瀺ããŠããŸãã
- 4è¡ç®ã¯ãã¯ãã¹ãã¡ã€ã³ãªã¯ãšã¹ãã®èš±å¯ãèšå®ããŸãã
- 5è¡ç®ã¯ãOK HTTPå¿çãã©ã°ãèšå®ããŸãã
protected void doSetResult( HttpServletResponse response, double result ) throws UnsupportedEncodingException, IOException { String reply = "{\"error\":0,\"result\":" + Double.toString(result) + "}"; response.getOutputStream().write( reply.getBytes("UTF-8") ); response.setContentType("application/json; charset=UTF-8"); response.setHeader("Access-Control-Allow-Origin", "*"); response.setStatus( HttpServletResponse.SC_OK ); }
DoSetErrorã¡ãœãã
doSetErrorã¡ãœããã¯ããšã©ãŒã¡ãã»ãŒãžã®å¿çãšHTTPå¿çã«å¿
èŠãªèšå®ããã©ãŒãããããŸãã ã¡ãœããæååã®æå³ã¯æ¬¡ã®ãšããã§ãã
- æåã®è¡ã¯ãJSONå¿çãçæããŸãã å¿çæ§é ã¯åçŽãªã®ã§ãç¹æ®ãªJSONã©ã€ãã©ãªã¯äœ¿çšãããŸããã
- 2è¡ç®ã§ã¯ãJSONå¿çã¯UTF-8ãšã³ã³ãŒãã䜿çšããŠãHTTPå¿çã®æ¬æã«ãã€ããªåœ¢åŒã§ãšã³ã³ãŒããããŸãã
- 3è¡ç®ã¯ãHTTPå¿çæ¬æã®ã³ã³ãã³ãã¿ã€ãã瀺ããŠããŸãã
- 4è¡ç®ã¯ãã¯ãã¹ãã¡ã€ã³ãªã¯ãšã¹ãã®èš±å¯ãèšå®ããŸãã
- 5è¡ç®ã¯ãOK HTTPå¿çãã©ã°ãèšå®ããŸãã ã¡ãã»ãŒãžã«ã¯ãç®è¡èšç®ã«é¢é£ãããšã©ãŒãå«ãŸããŠããããšã«æ³šæããŠãã ããã ãã®ãšã©ãŒã¯HTTPãããã³ã«ã«é¢é£ããŠããªããããã¹ããŒã¿ã¹ãã©ã°ã¯OKã«èšå®ãããŸãã
protected void doSetError( HttpServletResponse response ) throws UnsupportedEncodingException, IOException { String reply = "{\"error\":1}"; response.getOutputStream().write( reply.getBytes("UTF-8") ); response.setContentType("application/json; charset=UTF-8"); response.setHeader("Access-Control-Allow-Origin", "*"); response.setStatus( HttpServletResponse.SC_OK ); }
ç®è¡æŒç®ãå®è£
ããæ¹æ³
ãã®åçŽãªäŸã®ã¢ãŒããã¯ãã£ã¯ãã³ãŒããæ©èœéšåã«åå²ããããšã«åºã¥ããŠããŸãã ãããèæ
®ããŠãç®è¡æŒç®ã¯åå¥ã®é¢æ°ãšããŠå®è£
ãããdoGetã¡ãœããã®æ¬äœã«ã¯å«ãŸããŸããã 颿°ã¯åçŽãªã®ã§ãã³ãŒãã«ã€ããŠã¯ã³ã¡ã³ãããŸããã
protected double functionSum( double a, double b ) { return a + b; } protected double functionDif( double a, double b ) { return a - b; } protected double functionMul( double a, double b ) { return a * b; } protected double functionDiv( double a, double b ) { return a / b; }
ããã°ã©ã ã®ãœãŒã¹ã³ãŒãã¯
GitHubãªããžããªã«ãããŸã ã
ã³ã¢ã¯ã©ã¹ã®äœæ
ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã¯ã©ã¹ã«ã¯ãã¡ã€ã³é¢æ°ïŒããã°ã©ã ãéå§ãããããããšã³ããªãã€ã³ãïŒãå«ãŸããŸãã ã¡ã€ã³é¢æ°ã¯ãçµã¿èŸŒã¿JettyãµãŒããŒã®åæåãæ§æãããã³èµ·åãå¯èœã«ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã¯ã©ã¹ãäœæããã«ã¯ã
ãããžã§ã¯ããšã¯ã¹ãããŒã©ãŒããã«ã§ãããžã§ã¯ãåãå³ã¯ãªãã¯ããã³ã³ããã¹ãã¡ãã¥ãŒã§[
æ°èŠ ]ãéžæããŠãã[
ã¯ã©ã¹ ]ãéžæããŸãã ã¯ã©ã¹åã«ãMainããšå
¥åããŸãã ããã¯ã¹ããã§ãã¯ããŠéç颿°mainãäœæãã[
å®äº ]ãã¿ã³ãã¯ãªãã¯ããŸãã
ãµãŒãã¬ããã®å Žåãšåæ§ã«ã察å¿ãããã¡ã€ã«ãäœæãããããã¹ããšãã£ã¿ãŒã§éãããŸãã
ã€ã³ããŒããããã¢ãžã¥ãŒã«ã®è¿œå
ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã¯ã©ã¹ã®ãã¡ã€ã«ã«è¿œå ãããã³ãŒãã§ã¯ãã¢ãžã¥ãŒã«ãå«ããããã«æ¬¡ã®ã³ãŒãè¡ã远å ããå¿
èŠããããŸãã ãããã®è¡ã玹ä»ããŸãã
import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder;
mainã¡ãœããã«ã³ãŒãã远å ãã
ã¡ã€ã³ã¡ãœããã®ã³ãŒãã¯ãããŒã倿°ã宣èšãããµãŒããŒããªãã¹ã³ããããŒãçªå·ãå²ãåœãŠãããšããå§ãŸããŸãã ãã®ã¢ãããŒãã«ãããããã°ã©ã ãããã«æé·ããå Žåã«å¿
èŠã«å¿ããŠããŒããè¿
éãã€ç°¡åã«å€æŽã§ããŸãã
int port = 8080;
ãµãŒããŒã¯ã©ã¹ãäœæããŸãã
Server server = new Server(port);
äžèšã§äœæãããµãŒãã¬ããã«ã¯ãšãªæååãã¹ããã€ã³ããããã©ã¡ãŒã¿ãŒãæå®ããŸãã
ServletContextHandler context = new ServletContextHandler( ServletContextHandler.SESSIONS ); context.setContextPath( "/" );
ãµãŒããŒãžã®èŠæ±ãã³ãã©ãŒãæå®ããŸãã
HandlerList handlers = new HandlerList( ); handlers.setHandlers( new Handler[] { context } ); server.setHandler( handlers );
ãµãŒããŒãèµ·åããããšããŠããŸãã ããã°ã©ã ãæ©èœãç¶ããããã«ãserver.joinïŒïŒãåŒã³åºããŠããµãŒããŒããã»ã¹ãã¡ã€ã³ã¹ã¬ããã§å®äºããã®ãåŸ
ã£ãŠããŸãã ãšã©ãŒãçºçãããšã察å¿ããã¡ãã»ãŒãžãåºåãããŸãã
try { server.start(); System.out.println("Listening port : " + port ); server.join(); } catch (Exception e) { System.out.println("Error."); e.printStackTrace(); }
ããã°ã©ã ã®ãœãŒã¹ã³ãŒãã¯
GitHubãªããžããªã«ãããŸã ã
ãã©ãŠã¶ãŒãããµãŒãã¹ãžã®ã¢ã¯ã»ã¹
ãµãŒããŒèµ·å
ãµãŒããŒã®èµ·åæã«ãEclipseã¯2ã€ã®ãªãã·ã§ã³ãæäŸããå ŽåããããŸãã ãµãŒããŒã«ã¯å®å
šãªãµãŒãã¬ãããå«ãŸããŠãããããããã°ã©ã ã¯ãTomcatãã¹ã¿ã³ãã¢ãã³Jettyãªã©ã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã§å®è¡ã§ããŸãã ãã ããJettyãã¢ããªã±ãŒã·ã§ã³ã«çµã¿èŸŒãã ãããJavaã¢ããªã±ãŒã·ã§ã³ã®ããã«åç¬ã§æ©èœããŸãã
èµ·ååŸãã¢ããªã±ãŒã·ã§ã³ã¯é©åãªéç¥ãšãªã¹ãã³ã°ããŒããçºè¡ããŸããããŒãè¡ã¯ããµãŒããŒãå®è¡äžã§èŠæ±ãåŸ
æ©ããŠããããšã瀺ããŠããŸãã
ãã©ãŠã¶çµç±ã§ãªã¯ãšã¹ããéä¿¡ãã
ãµãŒããŒã®æ©èœã確èªããæãç°¡åãªæ¹æ³ã¯ããã©ãŠã¶ããã¢ã¯ã»ã¹ããããšã§ãã
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15ïŒop = +ãªã©ã®ã¯ãšãªæååãçŽæ¥éä¿¡ãããšããµãŒããŒã¯ãšã©ãŒãã¹ããŒããŸãã å®éã«ã¯ãæååã¯ã¯ãšãªæšæºã«æºæ ããŠããªããããURLãšããŠãšã³ã³ãŒãããå¿
èŠããããŸãïŒ+æåã¯ç¡å¹ã§ãïŒã
ã³ãŒãã£ã³ã°åŸããã¹ãŠããšã©ãŒãªãåäœããŸãã +æåã¯ãïŒ
2BãšããŠãšã³ã³ãŒããããURLã§ãããããèŠæ±ã¯æšæºã«æºæ ããŸãã ã€ã³ã¿ãŒãããã«ã¯ããã®ç®çã«äœ¿çšã§ããå€ãã®ãªã³ã©ã€ã³URLãšã³ã³ãŒããŒ/ããšã³ã³ãŒããŒããããŸãã
æšæºåããããªã¯ãšã¹ãïŒ
httpïŒ// localhostïŒ8080 / funcïŒA = 8.78ïŒb = 4.15ïŒop =ïŒ
2Båæ§ã«ãä»ã®ãªã¯ãšã¹ãã«å¯ŸãããµãŒããŒã®å¿çã確èªã§ããŸãã
ãµãŒããŒã¯ã©ã€ã¢ã³ã
ãã©ãŠã¶ã䜿çšããŠãªã¯ãšã¹ããçŽæ¥éä¿¡ããããšã¯å®çšçã§ã¯ãããŸãããã¯ãšãªæååãæåã§çæãããšãã«ééããçºçããå¯èœæ§ãéåžžã«é«ãããã§ãã ãã®ãããªãªãœãŒã¹ã®äœ¿çšã¯ãæ¬¡ã®æ¹æ³ã§æŽçã§ããŸãã
- JavaSciptãä»ããèªåã¯ãšãªæååçæãšå¿çãã©ãŒããããåããå°çšWebããŒãžã
- ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³;
- å
éšããŒãºã®ããã«äœæããããªãœãŒã¹ãæ¶è²»ããå¥ã®ãµãŒããŒã
ã¯ã©ã€ã¢ã³ã-WebããŒãž
å°çšWebããŒãžã¯ãåçŽãªã¿ã€ãã®ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã§ãã
ããŒãžã®HTMLã³ãŒã
ã¯GitHubãªããžããªã«ãããŸã ã
ã©ã³ãã£ãŒã¢ãžã¥ãŒã«ã®äœæ
äœæããããµãŒããŒã¯ãåäžã®ç¬ç«ããå®è¡å¯èœJARãã¡ã€ã«ãšããŠçºè¡ã§ããŸãã ãã®ãããªãã¡ã€ã«ã¯ãã€ã³ã¹ããŒã«ãããJavaã©ã³ã¿ã€ã ã®ã¿ãå¿
èŠãšãããã¡ã€ã«ã·ã¹ãã å
ã®ä»»æã®ãã©ã«ããŒããå®è¡ãããŸãã ãã®ãããªãã¡ã€ã«ãäœæããã«ã¯ã
ãããžã§ã¯ããšã¯ã¹ãããŒã©ãŒããã«ã§ãããžã§ã¯ãåãå³ã¯ãªãã¯ããã³ã³ããã¹ãã¡ãã¥ãŒã§
ãšã¯ã¹ããŒããéžæããŠãã
ãšã¯ã¹ããŒã...ãéžæããŸãã ã
Javaãã»ã¯ã·ã§ã³ã§
ãã Runnable JAR fileããéžæããŠã
ãNextããã¿ã³ãã¯ãªãã¯ããŸãã
äœæãããJARãã¡ã€ã«ã®èšå®ã§ã
èµ·åæ§æã
Main-SCalculatorãšããŠæå®ãããšã¯ã¹ããŒãããããã¡ã€ã«ã®ãã«ããŒã ãšããã®ãã¡ã€ã«ã«å¿
èŠãªã¢ãžã¥ãŒã«ãããã¯ããããã®ãã§ãã¯ããã¯ã¹ãæå®ããŸãã
SCalculatorãšããååã§æ£ããäœæãããJARãã¡ã€ã«ã¯ãåçŽãªã³ãã³ãã§èµ·åãããŸãïŒåããã©ã«ããŒããèµ·åãããå ŽåïŒã
java -jar SCalculator.jar
JARãã¡ã€ã«ãããã«ã¯ãªãã¯ããŠãµãŒããŒãèµ·åããããšãã§ããŸãã
ãŸãšã
ãã®ãªãªãŒã¹ã§èª¬æããèŠçŽ ã®å€ãã¯ãé«è² è·ã®ãµãŒããŒãäœæããããã«å®éã«äœ¿çšãããŸããã ééããªããNGINXãµãŒããŒããªããŒã¹ãããã·ã¢ãŒãã§äœ¿çšãããªã©ãããé«åºŠãªææ³ã䜿çšããŠãé«éæ§ãšä¿¡é Œæ§ãå®çŸããŸããã ããããããã¯ãã¹ãŠã·ã³ãã«ãªãã®ããå§ãŸããå®éã®éçºã«åœ¹ç«ã€ãã¯ããã¯ãç°¡åãã€æç¢ºã«èª¬æã§ããããšãé¡ã£ãŠããŸãã
åç
§è³æ
Jettyã®åã蟌ã¿ã®è©³çްã«ã€ããŠã¯ã
httpïŒ//docs.codehaus.org/display/JETTY/Embedding+Jettyã®ã¢ããªã±ãŒã·ã§ã³ãã芧ãã ããã
Tomcatã®äŸã䜿çšãããŠãŒã¶ãŒã©ã€ãã©ãªã®æ¥ç¶ã«ã€ããŠã¯ã
httpïŒ//www.avajava.com/tutorials/lessons/what-is-a-user-library-and-how-do-i-use-it.htmlïŒpage = 1ã§èª¬æãããŠã
ãŸããGitHubãªããžããªã¯æ¬¡ã®å Žæã«ãããŸãïŒ
https :
//github.com/dgakh/Studies/tree/master/Java/SWS-Embedded-Jettyæç€ºãããè³æã¯ãJava EE Developersããã³Ubuntu 14.04ã§ã®Eclipse Lunaã®äœ¿çšã«åºã¥ããŠããŸãã