現在進行形でやっている仕事で、ハンディターミナルを使ったシステムがあります。Servlet、コンテナにはTomcat7を使うことにしてあらかた実装も終えていました。ところが、これまでペンディング状態だった機能の内、ハンディからある業務機能を実行すると、ラベルを出力するというのがあり、これがちょっと問題でした。このラベルプリンタへの出力は、指示ファイルを出力すると、専用のソフトウェアがこれを読み取り印刷実行するというものです。これが1指示ファイルずつ処理、それも1指示ファイルパス名しか指定できないというもの。ハンディは複数台使われ、次々とラベル出力が要求される状況も当然考えられます。ラベルプリンタのベンダさん曰く「アプリで出力が終えるのを待ってください」とのことでした。要するに、スプールはアプリ側で行えということです。いうわけで、Servletから非同期でラベル出力をする必要が出てきました。これまで、システム間連携の為に専用の常駐サーバをフルスクラッチ開発したこともあります。そのような感じでスプーラを実装することも考えられましたが、さすがに納期も近いのでやりたくありませんでした。Bean)でやってしまえばいいのではないかと考えました。v3.1.2.2をインストールしました。JDBCの設定をし、これまでTomcat7に配備していたものをそのままGlassFishに配備しただけで動作することが確認できました。後は、JMSの設定、ラベル出力の指示ファイル出力部分をMDBで実装、ServletからMDBへ出力要求。ここまで、午前中だけで終えることができました。細部について何も示しておりませんが、今回の一件で、タイトル通り「JavaEE6、GlassFishって便利」という感想です。JavaEE7の導入期みたいですが、とりあえずJavaEE6からしっかり勉強する価値大いに有りと思いました。