NAKAMURA Minoru $B$NF|5-(B (2018$BG/(B2$B7n(B)

$B@h7n$NF|5-(B(2018$BG/(B01$B7n(B) $B:#7n$NF|5-(B(2018$BG/(B02$B7n(B)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
$B%[!<%`%Z!<%8(B | $B:G?7$N%3%a%s%H(B50
$B%$%s%G%C%/%9(B: $B?)$YJb$-(B | Java | $B%W%m%0%i%`(B | UNIX | $B2hA|(B
$B:G?7$NF|5-$X$N%j%s%/(B | $B$3$NF|5-%Z!<%8$r$O$F$J% $B$3$NF|5-%Z!<%8$r$O$F$J%V%C%/%^!<%/$KDI2C(B
$B$O$F$J(B $B%@%$%"%j!<(B $B%"%s%F%J(B $B%V%C%/%^!<%/(B $B%V%m%0(B
Twitter | mixi | Facebook | slideshare | github | Qiita



2/27 ($B2P(B)

$BF02h%5%$%H$NM-NA2q0w$r2rLs(B

$BM-NAF02h%5%$%H$N7@Ls$r8+D>$9!#(B d$B%"%K%a$H(BNetflix(2017$BG/(B5$B7n(B$B$+$i(B)$B$r;D$7$F8e$O2rLs$9$k!#(B

$B%K%3%K%3F02h$O(B2009$BG/(B7$B7n(B$B$+$i%W%l%_%"%`EPO?$rB3$1$F$$$?$,!"$3$3(B3$BG/$0$i$$$O$"$^$j$_$J$/$J$C$F$$$?$N$G2rLs!#(B

$B%P%s%@%$%A%c%s%M%k$N7n3[Dj3[$b(B2012$BG/(B4$B7n(B$B$+$i7@Ls$7$F$$$?$,!"$_$?$$$b$N$O$@$$$?$$$_$F$7$^$C$?$N$G?7$7$$:nIJ$,EPO?$5$l$k$^$G$O7n3[Dj3[$O2rLs$9$k$3$H$K$9$k!#(B $B%P%s%@%$%A%c%s%M%k$O:nIJ?t$OB?$$$1$I!"(Bd$B%"%K%a$HHf$Y$F2h


2/20 ($B2P(B)

UC $B%+!<%I$N%]%$%s%H(B5000$B1_J,$rBfOQElItCO?L(B $B5_1g6b(B

UC $B%+!<%I$N(B 1000 $B%]%$%s%H(B(5000$B1_J,(B)$BBfOQElItCO?L(B $B5_1g6b$K4sIU$9$k!#(B


2/17 ($BEZ(B)

[Movie] $B%0%l%$%F%9%H!&%7%g!<%^%s(B

$B%A%M%A%C%?$G!X%0%l%$%F%9%H!&%7%g!<%^%s!Y(B($B86Bj(B: The Greatest Showman)$B$r4Q$k!#(B $BP$B!&(BT$B!&%P!<%J%`(B$B$N@836$r1G2h2=$7$?$b$N$@$,!"

$B%l!&%_%<%i%V%k(B$B$r4Q$?;~$O%R%e!C$($?!#(B $B%R%e!

$BEl

$B$3$l$^$G%H!<%9%H$O(B$B%,%9%3%s%m(B$B$N5{>F$-%0%j%k$G>F$$$F$$$?$,!"2PNO$ND4@0$,Hs>o$KFq$7$$!#(B 4$BKg>F$-%H!<%9%H$G$O8|$9$.$F>G$2$F$7$^$$!"(B6$BKg>F$-%H!<%9%H$G$OGv2a$.$F>G$2L\$,$D$+$J$$!#(B

$B%*!<%V%s%H!<%9%?!<$rGc$*$&$+Gc$&$^$$$+$:$C$HG:$s$G$$$?$N$@$,!";W$$N)$C$?$,5HF|$G%h%I%P%7%+%a%i@n:j$G%*!<%V%s%H!<%9%?!<$r9XF~!#(B $BA*Dj$N>r7o$O(B

  • $B%G%m%s%.$N%T%6%9%H!<%s(B(26cm$B!_(B24cm)$BF~$k%5%$%:!#(B
  • $B29EYD4@0$,2DG=!#(B
  • $B@V30@~%R!<%?!<$G$"$k$3$H!#(B

$B>e5-$N>r7o$K9gCW$7$?$b$N$H$7$FEl

$BA0$KGc$C$?%G%m%s%.$N%T%6%9%H!<%s$O5{>F$-%0%j%k$K$OF~$i$J$+$C$?$,!":#2s$N%*!<%V%s%H!<%9%?!<$K$O$A$c$s$HF~$k!#(B $B$5$C$=$/%K%C%]%s%O%`$N!V@PMR9)KF$$$F$_$?$,!"!"!"$I$&$@$m$&5{>F$-%0%j%k$h$j$b$&$^$/>F$1$?$H$+H~L#$7$$$H$+$$$&5$$O$7$J$$!#(B $B%T%6%9%H!<%s$NM>G.$,B-$i$J$+$C$?$+!#(B


$BI}(B26cm$B$N%T%6%9%H!<%s$,F~$k(B

$B%T%6$r:\$;$F>F$/(B

$B%T%6$,>F$1$?(B


2/16 ($B6b(B)

[Food] $B%+!<%s%1%P%V(B $B%S%j%d%K!w6d:B(B

$B<.N1$K=PD%$N5"$j$K!X%+!<%s%1%P%V(B $B%S%j%d%K!Y$K!#(B $B$*E9$NL>A0$K%S%j%d%K$,F~$C$F$$$kD)@oE*$JE9$@!#(B

$B$:$C$HH~L#$7$$%S%j%d%K$rC5$7$F$$$k$N$@$,!"$J$+$J$+$a$0$j2q$($J$$$G$$$?$N$@$,(B(2013$BG/(B2$B7n(B$B!"(B2014$BG/(B4$B7n(B$B!"(B2017$BG/(B9$B7n(B)$B!"$A$g$C$H%A!<%H$7$F%0%k%a5-;v$r;2>H$9$k$H!"$A$g$&$I<.N16a$/$K$3$NE9$,$"$C$?!#(B $BETFb$N%S%j%d%K$,$&$^$$E9$H$$$&5-;v$KN>J}F~$C$F$$$k!#(B

$B%A%-%s%S%j%d%K$H%^%C%7%e%k!<%`!&%5%0!&%Q%3%i$H$$$&NAM}$rMj$`!#(B $B8e

$B:G=i$K%"%A%c!<%k$N:\$C$?%A%c%Q%F%#!<$,$*E9$+$i$N%5!<%S%9$H$7$F=P$F$/$k!#(B $B%^%C%7%e%k!<%`!&%5%0!&%Q%3%i$O!"6z$+$D$_$?$$$J0a$NCf$K%^%C%7%e%k!<%`$,F~$C$F$$$k!#(B $B%=!<%9$O%P%8%k$+$7$i!)(B


$B%"%A%c!<%k$N:\$C$?%A%c%Q%F%#!<(B

$B%^%C%7%e%k!<%`!&%5%0!&%Q%3%i(B

$B%A%-%s%S%j%d%K$O!"$3$l$^$G?)$Y$?$b$N$H0c$C$F$*JF$NN3$HN3$N4V$,$Q$i$Q$i$K$J$C$F$$$k!#(B $B$3$l$,A[A|$7$F$$$?!V$&$^$$%S%j%d%K!W$NL#$@!#(B $B$3$l$^$G?)$Y$F$$$?$N$H$OJLNAM}$N$h$&$K;W$($k!#(B

$B$*;.$K@9$C$F$"$k$,%P%J%J$NMU$H$*$b$o$l$k$b$N$,I_$$$F$"$k!#(B $B9a?INA$H$7$FH,3Q$,$+$J$jF~$C$F$$$k!#(B $B$&$C$+$j8}$KF~$l$k$HHs>o$K?I$$!#(B


$B$3$N%+%l!<$O$*E9$+$i$N%5!<%S%9(B

$B%S%j%d%K$OHs>o$K$&$^$$$,NL$,7k9=$"$C$?!#(B $B$?$V$sFs?MA0$@!#(B


2/15 ($BLZ(B)

$B%V%j%e!<%2%kE8(B $B2h2H0lB2(B 150$BG/$N7OIh!wEl5~ETH~=Q4[(B

$BEl5~ETH~=Q4[$G$d$C$F$$$k!X%V%j%e!<%2%kE8(B $B2h2H0lB2(B 150$BG/$N7OIh!Y(B($BEl5~ETH~=Q4[(B$B!"(B$BFC@_(BWEB$B%5%$%H(B)$B$r4Q$F$/$k!#(B

$B%\%9$r0z$-7Q$$$G88A[2h$d!V%P%Y%k$NEc!W$GM-L>$J%T!<%F%k!&%V%j%e!<%2%k(B1$B@$!"$=$N;R6!$G$"$k%T!<%F%k!&%V%j%e!<%2%k(B2$B@$$H%d%s!&%V%j%e!<%2%k(B1$B@$!"%d%s!&%V%j%e!<%2%k(B1$B@$$N;R6!!"B9$N(B4$B@$BeJ,$NE8<($G$"$k!#(B

$BBg%V%j%e!<%2%k$r4^$s$@E8<($O$3$l$^$G$b$$$m$$$m3+:E$5$l$F$$$k!#(B $B2a5n$NF|5-$rFI$`$H%Y%k%.!

$B:#2s$OBg%V%j%e!<%2%k$N:nIJ$O$"$^$j$J$/$"$C$F$b=,:n$,B?$$$N$@$,!"2a5n$KMhF|$7$?Bg:n$N2<3($@$C$?$j!";RB9$,Bg%V%j%e!<%2%k$N:nIJ$N%3%T!<$r$7$F$$$?$j$H$$$&$N$,8+$i$l$k$N$,LLGr$$!#(B $B$^$?(B$B%k!<%Y%s%9(B $B1I8w$N%"%s%H%o!<%W9)K<$H86E@$N%$%?%j%"!w=BC+(BBunkamura$B$GCN$C$?$N$@$,!"%d%s!&%V%j%e!<%2%k(B1$B@$$O%k!<%Y%s%9$H?F8r$,$"$C$?$h$&$G8w$N$D$1J}$,%k!<%Y%s%9Iw$@$J$H;W$o$;$k3($b2?Kg$+$"$C$?!#(B


2/10 ($BEZ(B)

Huawei MediaPad M3 Lite Wi-Fi$B%b%G%k(B

2$B7n(B5$BF|$K2q2015$BG/(B2$B7n(B$B$J$N$G$A$g$&$I(B3$BG/$G2u$l$?$3$H$K$J$k!#(B

Sony $B$O(B Xperia $B%?%V%l%C%H$N8e7Q5!$r=P$7$F$/$l$J$$$N$G!"@n:j$N%h%I%P%7%+%a%i$G$[$\F17?!&F1@-G=$N(B Huawei MediaPad M3 Lite Wi-Fi$B%b%G%k(B(CPN-W09)$B$r9XF~$9$k!#(B Huawei $B$N@=IJ$rGc$&$N$O=i$a$F$@!#(B Nexus 7 2012$BG/%b%G%k$+$i8+$F(B 3 $BBfL\$N%?%V%l%C%H$@$,!"D9@8$-$7$FM_$7$$!#(B

Sony Xperia Z3 Table Compact
Wi-Fi $B%b%G%k(B
Huawei MediaPad M3 Lite
Wi-Fi $B%b%G%k(B(CPN-W09)
$B7A>u(B 21.3 x 12.4 x 0.64 23.1 x 12.5 x 0.8
$B=ENL(B 270g 308g
CPU Qualcomm Snapdragon 801 2.5GHz Quad-core MSM8940 1.4GHz+1.1GHz Octa-core
$B%a%b%j(B 3GiB
$B2hLL(B 8.0$B%$%s%A(B 1920x1200 TFT LED $B1U>=(B 8.0$B%$%s%A(B 1920x1200 IPS $B1U>=(B
$B%9%H%l!<%8(B 32GiB
$BL5@~(B IEEE 802.11 a/b/g/n/ac
NFC $BM-(B $BL5(B
Bluetooth 4.0 4.2
$BG'>Z(B $B$J$7(B $B;XLfG'>Z(B
$B%P%C%F%j!<@-G=(B ? 4800mAh
$B= $B%^%$%/%m(BUSB + $B%/%l!<%I%k7PM3(B $B%^%$%/%m(BUSB$B7PM3(B

$B;XLfG'>Z$O9bB.$KG'>Z$G$-$FJXMx!#(B NFC $B$,$J$$$3$H$r=|$1$P$[$IF1@-G=$@$,!"EE8;%\%?%s$H2;NL%\%?%s$,Bg$-$$$N$GDO$`$H;~$K

[Movie] $B%3!<%I%.%"%9(B $BH?5U$N%k%k!<%7%e-6(B $BH@F;(B

$B%A%M%A%C%?$G%3!<%I%.%"%97`>l(B3$BIt:n$N(B2$BItL\$r4Q$k!#(B 1$BIt$O(B2017$BG/(B11$B7n(B$B$@$C$?!#(B

$BJ|1GHG$rBgI}$K%+%C%H$7$F?J$`$N$G!"%;%j%U$,HyL/$KJQ99$K$J$C$F$$$k!#(B $B6=F;$G$OIc$K;`$d%^%*$,$$$J$/$J$C$?$?$a$KFC$KIT9,$K$J$i$J$+$C$?%7%c!<%j!<$,!"H@F;$G$b;`K4$N2sHr$7$?!#(B $B$3$N$^$^@8$-;D$C$F(B3$B:nL\$KEP>l$9$k$N$+!)(B

[Movie] $B%P!<%U%P%j(B $BEA@bCB@8(B

$BF1$8$/%A%M%A%C%?$G!X%P!<%U%P%j(B $BEA@bCB@8!Y$N%j%P%$%P%k>e1G$r$d$C$F$$$k!#(B $B$^$@>e1GCf$N!X%P!<%U%P%j(B $B2&$N3.@{!Y$NA0JT$@!#(B $B2&$N3.@{$O(B$B:rG/$N(B12$B7n(B29$BF|(B$B$K4Q$F$k!#(B

$B!X2&$N3.@{!Y$O(B CG $B$d%o%$%d!<%I%"%/%7%g%s%P%j%P%j$N:nIJ$@$C$?$,!"!XEA@bCB@8!Y$O$=$3$^$G$G$O$J$/%$%s%I1G2h$N%"%/%7%g%sBg:n$H$$$&46$8$@!#(B 1$B:nL\$G6=9T<}1W$,>e$,$C$?$N$G!"(B2$B:nL\$N(B


2/9 ($B6b(B)

HTTP $B%^%k%A%Q!<%H(B

HTTP $B$,(B Content-Type $B$,(B multipart/form-data $B$N>l9g!"%Q!<%H4V$N6h@Z$j$r(B boundary $BJ8;zNs$G9T$&!#(B $B$=$N>l9g!"%Q!<%H$N(B Content-Type $B$,(B application/octet-stream $B$N>l9g$K$OG$0U$N%P%$%HNs$r4^$a$k$3$H$,$G$-$k$N$G!"%Q!<%HFb$K=P8=$7$J$$J8;zNs$r(B boundary $BJ8;zNs$H$7$FA*Br$9$kI,MW$,$"$k!#(B $B$=$N$?$a%^%k%A%Q!<%H$r9=@.$9$kA4%G!<%?$r%A%'%C%/$7$F$_$J$$$H(B boundary $BJ8;zNs$r7h$a$k$3$H$,$G$-$J$$$3$H$K$J$k!#(B $B$=$l$O@5D>!"LLE]$/$5$$!#(B

$B$b$7(B Content-Type $B$,(B application/octet-stream $B$N%Q!<%H$K(B Content-Length $B$r@_Dj$7$?>l9g!"%Q!<%H$N=*C<$N7h$aJ}$,(B boundary $BJ8;zNs$G$O$J$/(B Content-Length $B$G7h$a$?%P%$%H?t$H$$$&$h$&$K@Z$jBX$k$H9%ET9g$@!#(B $B$H!";W$C$?$,(BMDN web docs $B$N(B MIME $B%?%$%W(B$B$r8+$k$H!"(Bboundary $BJ8;zNs$N$_$,;H$o$l(B Content-Length $B$OL5;k$5$l$k$H$"$k!#(B

$B!V(BContent-Length $B$OL5;k$5$l$k!W$H8@$C$F$b!"30B&$N(B Content-Type $B$,(B multipart/form-data $B$N(B Content-Length $B$OM-8z$G$"$k!#(B $B$3$NCM$,IT@5$@$H(B HTTP $B%j%/%(%9%HK\BN$,@5$7$/%Q!<%9$5$l$J$$!#(B $BL5;k$5$l$k$N$OFbB&$N(B Content-Type $B$,(B application/octet-stream $B$N(B Content-Length $B$G$"$k!#(B $BFbB&$N(B Content-Length $B$,IT@5$JCM$G$"$C$F$bL5;k$5$l$k$N$GLdBj$J$$!#(B

POST /myapp/myresource/upload HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data; boundary=WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Length: 331
Expect: 100-continue
Connection: close

--WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="abc.txt"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-Length: 93

ABCDEFGHIJKLMNOPQRSTUVWXYZ
==WebKitFormBoundary7MA4YWxkTrZu0gW
ABCDEFGHIJKLMNOPQRSTUVWXYZ
--WebKitFormBoundary7MA4YWxkTrZu0gW--

$Bhttps://github.com/nminoru/misc/tree/master/java/jersey_test$B$K$"$2$F$*$/!#(B


2/8 ($BLZ(B)

VMware $BFb$N%2%9%H(B VM $B$KF10l%5%V%M%C%HFb$N%^%7%s$+$i%"%/%;%9$,$G$-$J$$(B

$B7W;;5!<<$N]$K=1$o$l$k!#(B

$B7k6I!"LdBj$N$"$k(BLinux$B%5!<%P!<$O(Barp_announce$B!"(Barp_ignore$B$r@_Dj(B$B$K860x$,$"$k$h$&$G!"$3$l$r2r=|$9$k$HDL?.2DG=$K$J$C$?!#(B $B9=@.E*$K$O(B VMware ESXi $BFb$N%2%9%H(B VM $B$H30B&$N%[%9%H$,F10l%5%V%M%C%H$KB0$7$F$$$k>l9g$KH/@8$9$k!#(B arp_announce$B!"(Barp_ignore $B$r;E3]$1$?$N$O(B 10.20.30.1$B!"(B10.20.30.2 $B$K$"$?$k%[%9%H$K@_Dj$7$F$$$k!#(B

$B$J$<$=$&$$$&LdBj$,5/$-$F$$$k$N$+$OJ,$+$i$J$$!#(B


2/2 ($B6b(B)

Jersey(JAX-RS)$B$G(B JSON $B$N%^!<%7%c%j%s%0;~$NM>7W$J(B type $B$N=|5n$9$k(B

Jsery $B$r;H$&>l9g$K(B jersey-media-moxy $B$r;XDj$9$k$H!"(BJava $B%/%i%9$H(B JSON $B$r%^%C%T%s%0$9$k$3$H$,$G$-$k!#(B

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-moxy</artifactId>
</dependency>

$BNc$($P%3!<%I$O0J2<$N$h$&$K$J$k!#(B

public class MyRequest {
   public String foo;
   public String bar;
}

public class MyReponse {
   public String baz;
   public String qux;
}

public class Service {
    @Path("/foo")
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public MyReponse foo(MyRequest request) {
        MyReponse response = new MyReponse();

        response.baz = request.foo;
        response.qux = request.bar;

        return response;
    }
}

$B$7$+$7(B HTTP $B%j%/%(%9%H$H$7$F(B JSON $B$rM?$($k$H!"(BMyRequest $B$K%^%C%T%s%0$5$l$k!#(B

POST /foo HTTP/1.1
Content-Type: application/json
Content-Length: 28

{ "foo":"abc", "bar":"def" }

MyResponse $B$b(B HTTP $B%l%9%]%s%9Fb$N(B JSON $B$rM?$($k$H!"(BMyRequest $B$K%^%C%T%s%0$5$l$k!#(B $B7k2L$H$7$F(B HTTP $B%l%9%]%s%9$,JV$k$,M>7W$J(B type $B$,A^F~$5$l$k!#(B

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 46

{"type":"myReponse", "foo":"abc", "bar":"def"}

$B$3$l$O(B Java $B%/%i%9$K(B @XmlType $B$r;XDj$7!"(Bname $B$r6u$K$9$k$H=P$J$/$J$k!#(B

import javax.xml.bind.annotation.XmlType;

@XmlType(name = "")
public class MyRequest {
   public String foo;
   public String bar;
}

$BDI5-(B: 2/9

Jersey $B$N(B 2.26 $B$N>l9g!"(BMOXy $B$G$O$J$/(B JSON-B $B$r;XDj$9$k$3$H$,$G$-$k!#(B

JSON-B $B$K@Z$jBX$o$C$F$b(B Java $B%/%i%9$H(B JSON $B$N%^%C%T%s%0$O$=$N$^$^2DG=$@$,!"ITMW$J(B type $B$OI=<($5$l$J$$!#(B

pom.xml $B$K0J2<$N$h$&$K=q$/$H(B MOXy $B$,DI2C$5$l$k$,!"(B

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-moxy</artifactId>
</dependency>

$B$3$l$r0J2<$N$h$&$K=q$/$H(B JSON-B $B$K@Z$jBX$o$k!#(B

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-json-binding</artifactId>
</dependency>

$B$^$?(B MOXy $B$G$O=PNO$G$-$J$+$C$?(B JSON $B$NB?

public class MyRequest {
   public List<List<String>> foo;
   public String[][] bar;
}

$B@h7n$NF|5-(B(2018$BG/(B01$B7n(B) $B:#7n$NF|5-(B(2018$BG/(B02$B7n(B)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
$B%[!<%`%Z!<%8(B | $B:G?7$N%3%a%s%H(B50
$B%$%s%G%C%/%9(B: $B?)$YJb$-(B | Java | $B%W%m%0%i%`(B | UNIX | $B2hA|(B
$B:G?7$NF|5-$X$N%j%s%/(B | $B$3$NF|5-%Z!<%8$r$O$F$J% $B$3$NF|5-%Z!<%8$r$O$F$J%V%C%/%^!<%/$KDI2C(B
$B$O$F$J(B $B%@%$%"%j!<(B $B%"%s%F%J(B $B%V%C%/%^!<%/(B $B%V%m%0(B
Twitter | mixi | Facebook | slideshare | github | Qiita


Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp