JJUC CCC 2013 Fallのハンズオンをしてみました。
JJUC CCC 2013 Fallに参加できなかったので、そこで実施された「R5-1 Java EEハンズオン」を一人ハンズオンをしたのでメモ。
資料が大変わかりやすく書かれていたので、特に詰まることなくJavaEE7+WebSocketアプリを作れました。
資料はこちら
Java EE 7 HoL on JJUG CCC | 寺田 佳央 - Yoshio Terada
ただ一点、GlassFishハンドルのNetBeans7.4をダウンロードしたのですが、GlassFish4が認識されずもともと入っていた3.1.2.2しか使えなかったので新たにインストールする必要がありました。
「ツール(T)」→「サーバー(S)」を選択しこの画面からサーバを追加。
5章まで終わるとひと通り動くものができたので、クラスタリング構築部分は飛ばして、chat機能を追加してみました。
追加した内容は
- chat用のManagedBeanを追加
- chat用のJSFページを追加
しかもMBeanはIndexPageMgdBeanと同じ(@Namedのvalueは変更)、JSFページはclient-endpoint.htmlとadmin/index.xhtmlを合わせてメッセージ送信部分をajax処理に変えただけです。
MBeanのChatPageMgdBeanクラス
@Named(value = "chatManage") @RequestScoped public class ChatPageMgdBean {
<h:body> <h2>WebSocket RealTime Information Transfer2</h2> サーバ接続ポート:<input id="server-port" type="text" value=""/> <input id="connect" type="button" value="Connect" onclick="connectServerEndpoint();"/> <input id="close" type="button" value="DisConnect" onclick="closeServerEndpoint();"/> <br /> <h:form> <h:inputText id="textField" value="#{chatManage.message}" /> <f:ajax execute="textField"> <h:commandButton value="sendMessage" action="#{chatManage.pushSendButton()}" /> </f:ajax> </h:form> <table border="1" id="TBL"> </table> </h:body>
ハンズオンのプロジェクトにこれだけ追加したら簡単なchatアプリですが完成しました。
それぞれlocalhost:8080に接続しメッセージを送付すると両方のブラウザに即座にメッセージが表示されます。
<f:ajax />
を追加するだけというところです。
ほんとにJavaEE7+JSFを使うと業務系のアプリだと簡単に構築できそうです。
ソースはgithubにアップしています。
https://github.com/amkt922/WebSocket-HoL