Java

ZeroMQのJava実装のJeroMQを試す

ZeroMQ http://zguide.zeromq.org/page:all JeroMQ https://github.com/zeromq/jeromq ZeroMQはシンプルで高速なプロセス間通信を実現する C/C++のライブラリ。ライブラリのラッパーは対応言語が豊富。 キューは永続化はされない。メモリで処理されるので高…

Android開発環境をセットアップしてMavenでビルドできるようにする SDK r20 対応情報

2012/08/02現在 以前に記述した Android開発環境をセットアップしてMavenでビルドできるようにする http://d.hatena.ne.jp/bose999/20120531/1338431783 の手順に変化がありますのでメモしておきます。 m2eの最新バージョンではmaven.runtime.3.0.3をインス…

Android開発環境をセットアップしてMavenでビルドできるようにする

環境はLion上で構築します。OSが違う方は適時読み替えて下さい。 2012/05/31時点の情報なのでVerUP等により、今後は方法は変わるかもしれません。 この点はご注意下さい。 Javaを入れます。 Android SDKをダウンロードして任意の場所におきます。 Eclipseを…

CDIで特定のスコープの自分で作成したクラスのインスタンスを取り出す

下記はリクエストスコープでの例 BeanManager beanManager = InitialContext.doLookup("java:comp/BeanManager"); Set<Bean<?>> allBeans = beanManager.getBeans(Object.class, new AnnotationLiteral<Any>() { }); @SuppressWarnings("rawtypes") CreationalContext cre</any></bean<?>…

EJB3.1でプログラムでタイマーを作成し実行してみる

10秒毎にサーバ非起動中の実行しなかったものは破棄する形で実行するサンプル。 @PostConstructのついたメソッドでインスタンス化時にTimerを作ったら そのTimerのタイムアウトで@Timeoutのついたメソッドが呼ばれます。 ※timerService.createCalendarTimer…

Thymeleafでの出力までのサンプルが徐々に出来てきた

plain-frameworkを使ったサンプルですが少し動くようになって来ました。 Thymeleafを利用した出力もしています。 まだDao層までの実装まで行ってませんが、サンプルどんなの作ればいいかなぁと 試行錯誤してた状態からちょっと進んだ感じです。とりあえずサ…

とりあえずアイディアベースをアップ

ちょっとずつアイディアを固めてる所。GW明けにメンバーとディスカッション予定。 https://github.com/pjunknown/plain-framework https://github.com/pjunknown/plain-framework-sample

Plain Framework 概要とFirst commit

Project UNKONWの一つのサーバサイド側のフレームワークの概要と First commitしました。今後更に改善していきます。 ライセンスはApache License, Version 2.0にしています。 とりあえず現時点での概要はこんな感じ。 上記は見にくいのでPDFは下記。 http:/…

Oracle JDK7u4をMacに入れてEclipseでも使えるようにしてみる

Mac版もOracleから出たのでLionにインストールしてみます。 1. Oracleからダウンロードしてdmgをマウントしてインストールします。 http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u4-downloads-1591156.html 2. Finder -> 移動 -> ユーティ…

EJB3.1非同期処理の再考

前に下記のURLのエントリでサンプルを書きましたが 納得行かなかった部分がいっぱいあったので更新。 http://d.hatena.ne.jp/bose999/20120422/1335076137 Selvet3.0から非同期でEJB3.1のStatlessSessionBeanを呼び出して そのStatlessSessionBeanが別のStat…

Jboss7.1.1上でServlet3.0のasync-supportedとEJB 3.1を使ってみる

今回作成したソースはgithub上に置いてあります。下記参照。 https://github.com/bose999/servlet30-ejb31-jboss711-sample ServletにてAsyncContextを生成 ServletにDIされたStateless Sessin Beanにて非同期処理を実行 EJBでのエラーやトランザクションタ…

Tomcat7上でServlet3.0のasync-supportedを使ってみる

今回作成したソースはgithub上に置いてあります。下記参照。 https://github.com/bose999/servlet30-tomcat7-sample ServletにてAsyncContextを生成 非同期処理のイベント発生時に処理をするAsyncListenerをセット AsyncContextのstartメッソドでRunnableを…

REST EasyをServlet3.0で動かす設定

Servlet3.0以前は org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher をServletとして設定していたのですが、 org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher を指定するとServlet3.0に対応になります。この辺をweb.xm…

JacksonでJSON文字列を作ってみる

{ "Age":37, "FamilyFirstNames":["Kamisan","Musume","Musuko"], "Cats":[{"name":"coco","age":3},{"name":"choco","age":2}], "FirstName":"Masahide", "LastName":"Takeda" } が出力されるサンプル。 MapだろうがListだろうがJavaBeanだろうが意識しない…

AES128bit暗号化/復号化を文字列で行なってみる

import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingE…

EclipseにEclEmmaを入れてカバレッジを見ながらテストケースを検討する

私がやってるテストの流れをざっとまとめると流れは下記になります。 1.INとOUTの仕様を決めてテストを書く。(ブラックボックステスト) 2.コードを書く。 3.テストでチェックする。 4.カバレッジを見てテストされてないコードが無いかを確認する。 テスト…

スタックトレースを文字列にする例

/** * StackTraceを文字列として返す * * @param exception Throwable * @return String */ public String getStackTraceString(Throwable exception) { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(string…

MacPortsでmod_jkをインストール

mod_jkのインストールとセットアップ。 mod_jkでTomcat6のサンプルをApache経由でアクセスを可能にする。 mod_jk.confとworkers.propertiesは最小限の設定。 % sudo port install mod_jk % sudo vi /opt/local/apache2/conf/conf.d/mod_jk.conf % sudo vi /o…

MacPortsでTomcat6をインストール

とりあえずサンプルファイルをデフォルトに起動するようにする。 必要に応じて各設定ファイルを書き換える。 % sudo port install tomcat6 % sudo cp /opt/local/share/java/tomcat6/conf/catalina.policy.sample /opt/local/share/java/tomcat6/conf/catali…

RestEasyでシリアライズ/デシリアライズでBeanをやり取りする

RestEasyから文字列を返す。その文字列はBeanをシリアライズして Base64エンコードした文字列。 クライアントは文字列を受け取りデシリアライズしてBeanを復元。 Beanの中身で処理を行なう。 というサンプル。 pom.xml

RestEasyでのやり取りをgzipしたい時

バイナリを文字列でやり取りしたりすると流石に通信が重くなります。 Content-Encoding: gzipを使用して クライアント側のリクエストヘッダのContent-Encodingをgzipで送出。 ClientRequest request = new ClientRequest(uri); request.header("Content-Enco…

RestEasyを使ってjson経由でバイナリファイルをやり取りする

RestEasyの返すjsonにBase64エンコーディングした文字列でバイナリを埋め込む。 それをクライアントが受信してデコードしてファイルに戻すサンプル。#xml経由にしたければ @Produces("application/xml") にする。pom.xml

RestEasy実装サンプルのまとめ。

ここの所触ってきたRestEasy2.0.1.GAのまとめのサンプルコードになります。 使用頻度の高そうなものをサンプルコードで触れるようにしました。 このコードで下記の実装方法がだいたいわかるかと思います。 ここに載せているのはRestEasyのクラスやメソッドの…

RestEasyをクライアントとしても使ってみる。

こちらで書いたRESTサーバに対してクライアントのコードを実装してみます。 クライアントについてもRESTEasyが実現してくれています。 まずはStringで受け取ってStringを標準出力へ。 次にResponseBeanという出力されるXMLが定義してあるJavaBeanで受け取っ…

RestEasyで簡単REST実装

Maven2で必要なlibを定義して取得します。次にレスポンスでXMLを使用する場合はアノテーションでBeanに対して XMLの定義を行ないます。GET、PUT、POST、DELETE等の処理に応じた実装を行ない Beanを生成、ステータスコードをセットしてあげるだけで あとはよ…

enumの値を取得する

enumに値を定義し、メソッドを定義してその値を取得する。 /** * ステータス * * @author bose999 * */ public enum Status { /** * 失敗 */ FALSE(0), /** * 成功 */ SUCCESS(1); /** * ENUMの実際の値 */ private int value = 0; /** * コンストラクタ * *…