{"id":192,"date":"2013-07-20T17:55:54","date_gmt":"2013-07-20T08:55:54","guid":{"rendered":"http:\/\/www.rocher.kyoto.jp\/araburu\/?p=192"},"modified":"2013-11-03T19:33:17","modified_gmt":"2013-11-03T10:33:17","slug":"javafx%e3%81%a8websocket%e3%82%92%e9%80%a3%e6%90%ba%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8bon-glassfish4-0-%e3%81%9d%e3%81%ae1","status":"publish","type":"post","link":"https:\/\/www.rocher.kyoto.jp\/arbr\/?p=192","title":{"rendered":"JavaFX\u3068Websocket\u3092\u9023\u643a\u3057\u3066\u307f\u308b(On Glassfish4.0) \u305d\u306e1"},"content":{"rendered":"<p>\u30b5\u30fc\u30d0\u30b5\u30a4\u30c9\u306f\u3044\u3064\u3082\u306e\u3088\u3046\u306bGlassfish 4.0\u3002\u307e\u305a\u306f<a href=\"http:\/\/yoshio3.com\/2012\/12\/14\/javaee7-websocket-client-with-javafx\/\">\u5bfa\u7530\u3055\u3093\u306e\u30d6\u30ed\u30b0<\/a>\u3092\u898b\u3064\u3064\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\u7528\u306e\u30da\u30fc\u30b8\u3067\u5165\u308c\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u3053\u307e\u3067\u6301\u3063\u3066\u3044\u304f\u3002\uff08\u5143\u306e\u30d6\u30ed\u30b0\u306e\u3088\u3046\u306b\u30c4\u30a4\u30c3\u30bf\u30fc\u3092\u898b\u306b\u884c\u304d\u306f\u3057\u306a\u3044\u3067\u3001index.html\u3067\u5165\u308c\u305f\u3082\u306e\u304c\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3002\uff09<\/p>\n<p>\u30b5\u30fc\u30d0\u7528\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8(ws:\/\/localhost:8080\/first\/hello\/)<\/p>\n<pre>package jp.co.epea.first;\r\n\r\nimport java.util.Collections;\r\nimport java.util.HashSet;\r\nimport java.util.Set;\r\n\r\nimport javax.websocket.OnClose;\r\nimport javax.websocket.OnError;\r\nimport javax.websocket.OnMessage;\r\nimport javax.websocket.OnOpen;\r\nimport javax.websocket.Session;\r\nimport javax.websocket.server.ServerEndpoint;\r\n\r\n@ServerEndpoint(\"\/hello\/\")\r\npublic class HelloWorld {\r\n\r\n\u00a0\u00a0 \u00a0static Set&lt;Session&gt; sessions = Collections\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0.synchronizedSet(new HashSet&lt;Session&gt;());\r\n\r\n\u00a0\u00a0 \u00a0@OnMessage\r\n\u00a0\u00a0 \u00a0public void onMessage(String message) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"message[\" + message + \"]\");\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (Session s : sessions) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0s.getAsyncRemote().sendText(message);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0@OnOpen\r\n\u00a0\u00a0 \u00a0public void open(Session sess) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"\u958b\u59cb\u3057\u307e\u3059\uff1a\" + sess.getId());\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0sessions.add(sess);\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0@OnClose\r\n\u00a0\u00a0 \u00a0public void close(Session sess) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"\u7d42\u4e86\u3057\u307e\u3059\uff1a\" + sess.getId());\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0sessions.remove(sess);\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0@OnError\r\n\u00a0\u00a0 \u00a0public void error(Session sess,Throwable t) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"\u30a8\u30e9\u30fc\u3067\u3059\uff1a\" + sess.getId());\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0t.printStackTrace();\r\n\u00a0\u00a0 \u00a0}\r\n}<\/pre>\n<p>\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\u7528\u306e\u30da\u30fc\u30b8\uff08http:\/\/localhost:8080\/first\/index.html\uff09<\/p>\n<pre>&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\u00a0\u00a0\u00a0 &lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;title&gt;WebSocket\u30c6\u30b9\u30c8&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;script src=\"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.10.1\/jquery.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;script type=\"text\/javascript\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var socket;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $(document).ready(function(){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var host=\"ws:\/\/localhost:8080\/first\/hello\/\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 socket = new WebSocket(host);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 socket.onmessage = function(message){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $('#log').append(message.data + \"&lt;br\/&gt;\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $('#send').click(function(){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 var text = $('#msg').val();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 socket.send(text);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $('#msg').val('');\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 })\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 });\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/script&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 &lt;\/head&gt;\r\n\u00a0\u00a0\u00a0 &lt;body&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h1&gt;WebSocket\u30c6\u30b9\u30c8&lt;\/h1&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;div id=\"log\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;input id=\"msg\" type=\"text\"\/&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;button id=\"send\"&gt;\u9001\u4fe1&lt;\/button&gt;\r\n\u00a0\u00a0\u00a0 &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b5\u30a4\u30c9\u306e\u4f5c\u6210\u306e\u6d41\u308c\u306f<\/p>\n<ol>\n<li>Mavan\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066JavaFX\u3092\u4f5c\u6210<a href=\"https:\/\/www.rocher.kyoto.jp\/araburu\/?p=185\">(\u524d\u56de\u30d6\u30ed\u30b0)<\/a><\/li>\n<li>\u8db3\u308a\u306a\u3044\u4f9d\u5b58\u95a2\u4fc2\u3092\u8ffd\u52a0<\/li>\n<li><a href=\"http:\/\/yoshio3.com\/2012\/12\/14\/javaee7-websocket-client-with-javafx\/\">\u5bfa\u7530\u3055\u3093\u306e\u30d6\u30ed\u30b0<\/a>\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b5\u30a4\u30c9\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u30b3\u30d4\u30da<\/li>\n<li>\u3068\u308a\u3042\u3048\u305a\u52d5\u304f\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u306b\u6700\u4f4e\u9650\u306e\u4fee\u6b63\u3092\u52a0\u3048\u308b<\/li>\n<\/ol>\n<p>(\u624b\u98061\u30683\u306f\u7701\u7565)<\/p>\n<p><strong>\uff12\uff0e\u8db3\u308a\u306a\u3044\u4f9d\u5b58\u95a2\u4fc2\u3092\u8ffd\u52a0<\/strong><\/p>\n<p>tyrus-client\u3068tyrus-container-grizzly\u306f<a href=\"http:\/\/ihiroky.hatenablog.com\/entry\/2013\/06\/25\/013134\">\u3053\u3061\u3089\u306e\u30d6\u30ed\u30b0<\/a>\u3092\u53c2\u8003\u306b\u3057\u305f\u3068\u304d\u306b\u300cGrizzly \u95a2\u9023\u306e jar\u300d\u306e\u4eca\u7248\u3068\u3057\u3066\u4f7f\u3048\u305d\u3046\u306a\u306e\u3067\u8a66\u3057\u305f\u3068\u3053\u308d\u3044\u3051\u305f\u3063\u307d\u3044\u306e\u3067\u6301\u3063\u3066\u304d\u305f\u3002(<a href=\"https:\/\/tyrus.java.net\/documentation\/1.1\/user-guide.html\">\u30e6\u30fc\u30b6\u30ac\u30a4\u30c9<\/a>)<\/p>\n<pre>\u00a0\u00a0\u00a0 &lt;dependencies&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;dependency&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;groupId&gt;com.oracle&lt;\/groupId&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;artifactId&gt;javafx&lt;\/artifactId&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;version&gt;2.0&lt;\/version&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;scope&gt;system&lt;\/scope&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;systemPath&gt;C:\\dev\\pleiades43\\java\\7\\lib\/jfxrt.jar&lt;\/systemPath&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/dependency&gt;\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;dependency&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;groupId&gt;org.glassfish.tyrus&lt;\/groupId&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;artifactId&gt;tyrus-client&lt;\/artifactId&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;version&gt;1.1&lt;\/version&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;scope&gt;compile&lt;\/scope&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/dependency&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;dependency&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;groupId&gt;org.glassfish.tyrus&lt;\/groupId&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;artifactId&gt;tyrus-container-grizzly&lt;\/artifactId&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;version&gt;1.1&lt;\/version&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;scope&gt;compile&lt;\/scope&gt;<\/span>\r\n<span style=\"color: #ff0000;\">\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/dependency&gt;<\/span>\r\n\u00a0\u00a0 \u00a0&lt;\/dependencies&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>\uff14\uff0e\u3068\u308a\u3042\u3048\u305a\u52d5\u304f\u3088\u3046\u306b\u306a\u308b\u305f\u3081\u306b\u6700\u4f4e\u9650\u306e\u4fee\u6b63\u3092\u52a0\u3048\u308b<\/strong><\/p>\n<p>TwitterClient\u306e\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3092@ClientEndpoint\u3001@OnOpen\u3001@OnMessage\u3001@OnClose\u306b\u5909\u66f4\u3002<\/p>\n<p>SampleController.java\u306eURL\u3092\u4fee\u6b63\u3002<\/p>\n<p>ClientEndpointConfiguration\u306e\u884c\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3002<\/p>\n<pre>URI clientURI = new URI(\"<span style=\"color: #ff0000;\">ws:\/\/localhost:8080\/first\/hello\/<\/span>\");\r\n<span style=\"color: #008000;\">\/\/ClientEndpointConfiguration clientConfig = new DefaultClientConfiguration();<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p><strong>\u52d5\u4f5c\u78ba\u8a8d<\/strong><\/p>\n<p>\u30b5\u30fc\u30d0\u3092\u8d77\u52d5\u3059\u308b\u3002<\/p>\n<p>JavaFX\u3092\u8d77\u52d5\u3059\u308b\u3002<\/p>\n<p><a href=\"https:\/\/www.rocher.kyoto.jp\/araburu\/wp-content\/uploads\/2013\/07\/a8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-193\" alt=\"a\" src=\"https:\/\/www.rocher.kyoto.jp\/araburu\/wp-content\/uploads\/2013\/07\/a8-300x280.png\" width=\"300\" height=\"280\" srcset=\"https:\/\/www.rocher.kyoto.jp\/arbr\/wp-content\/uploads\/2013\/07\/a8-300x280.png 300w, https:\/\/www.rocher.kyoto.jp\/arbr\/wp-content\/uploads\/2013\/07\/a8.png 469w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>start timeline\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b5\u30fc\u30d0\u3068\u63a5\u7d9a<\/p>\n<pre>\uff08\u30b3\u30f3\u30bd\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\uff09\r\nConnection had opened.<\/pre>\n<p>&nbsp;<\/p>\n<p>index.html\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1<\/p>\n<p><a href=\"https:\/\/www.rocher.kyoto.jp\/araburu\/wp-content\/uploads\/2013\/07\/b5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-194\" alt=\"b\" src=\"https:\/\/www.rocher.kyoto.jp\/araburu\/wp-content\/uploads\/2013\/07\/b5.png\" width=\"355\" height=\"239\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>JavaFX\u5074\u306b\u8868\u793a\u3055\u308c\u308b<\/p>\n<p><a href=\"https:\/\/www.rocher.kyoto.jp\/araburu\/wp-content\/uploads\/2013\/07\/c4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-195\" alt=\"c\" src=\"https:\/\/www.rocher.kyoto.jp\/araburu\/wp-content\/uploads\/2013\/07\/c4-300x280.png\" width=\"362\" height=\"337\" srcset=\"https:\/\/www.rocher.kyoto.jp\/arbr\/wp-content\/uploads\/2013\/07\/c4-300x280.png 300w, https:\/\/www.rocher.kyoto.jp\/arbr\/wp-content\/uploads\/2013\/07\/c4.png 469w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u4e00\u5fdc\u3053\u308c\u3067\u52d5\u4f5c\u3057\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3053\u3044\u3064\u3092\u57fa\u70b9\u306b\u89e6\u3063\u3066\u3044\u304f\u3053\u3068\u306b\u3059\u308b\u3002<\/p>\n<p>(JavaFX\u5074\u3092X\u30dc\u30bf\u30f3\u3067\u9589\u3058\u305f\u3068\u304d\u306bOnclose\u304c\u547c\u3070\u308c\u3066\u306a\u3044\u3063\u307d\u3044\u3051\u3069\u3001\u5b9f\u88c5\u7684\u306b\u305d\u3046\u3044\u3046\u52d5\u304d\u306b\u306a\u308b\u306e\u304b\u74b0\u5883\u304c\u304a\u304b\u3057\u3044\u306e\u304b\u3002\u3002\u3002\u3002\u3002)<\/p>\n<p>2013\/11\/03\u8ffd\u8a18<\/p>\n<p>\u5b50\u306e\u5b9f\u88c5\u3067\u306fJavaFX\u306eTableView\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001WebSocket\u5074\u306e\u30b9\u30ec\u30c3\u30c9\u306b\u3088\u308b\u5909\u66f4\u304cJavaFX\u306e\u30b9\u30ec\u30c3\u30c9\u306b\u901a\u77e5\u3055\u308c\u3066\u3044\u308b\u3002\uff08\u30aa\u30d6\u30b6\u30fc\u30d0\uff09<\/p>\n<p>\u685c\u5ead\u3055\u3093\u306b\u4f3a\u3063\u305f\u3068\u3053\u308d\u3001\u300c\uff08GUI\u306f\u305d\u3063\u3061\u306e\u30b9\u30ec\u30c3\u30c9\u304b\u3089\u52d5\u304b\u3059\u306e\u304c\u57fa\u672c\u306a\u306e\u3067\uff09\u304d\u3061\u3093\u3068\u52d5\u304b\u306a\u3044\u3053\u3068\u3042\u308b\u304b\u3082\u3088\u300d\u3068\u306e\u3053\u3068\u3067\u3057\u305f\u3002<\/p>\n<p>\u4ed6\u306e\u65e5\u8a18\u3067\u306fLabel\u3067\u540c\u671f\u3057\u3088\u3046\u3068\u3057\u305f\u5834\u5408\u306bPlatform.runLater\u3067JavaFX\u306e\u30b9\u30ec\u30c3\u30c9\u306b\u51e6\u7406\u3092\u623b\u3057\u3066\u3044\u308b\u3051\u3069\u3001\u305d\u3061\u3089\u306e\u65b9\u6cd5\u304c\u57fa\u672c\u3068\u306e\u3053\u3068\u3067\u3057\u305f\u3002<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30b5\u30fc\u30d0\u30b5\u30a4\u30c9\u306f\u3044\u3064\u3082\u306e\u3088\u3046\u306bGlassfish 4.0\u3002\u307e\u305a\u306f\u5bfa\u7530\u3055\u3093\u306e\u30d6\u30ed\u30b0\u3092\u898b\u3064\u3064\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\u7528\u306e\u30da\u30fc\u30b8\u3067\u5165\u308c\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u3053\u307e\u3067\u6301\u3063\u3066\u3044\u304f\u3002\uff08\u5143\u306e\u30d6\u30ed\u30b0\u306e\u3088\u3046\u306b\u30c4\u30a4\u30c3\u30bf\u30fc\u3092\u898b\u306b\u884c\u304d\u306f\u3057\u306a\u3044\u3067 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[70,71,7,6],"class_list":["post-192","post","type-post","status-publish","format-standard","hentry","category-javafx","tag-javaee","tag-javafx","tag-jsr-356","tag-websocket"],"_links":{"self":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=192"}],"version-history":[{"count":4,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions"}],"predecessor-version":[{"id":397,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/192\/revisions\/397"}],"wp:attachment":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}