Play frameworkでmecab apiを自炊する

Play frameworkのインストールは,zipを解凍するだけなので省略.
環境はUbuntu Desktop 10.04.MecabUTF-8阪.
Mecabのインストールは,http://d.hatena.ne.jp/Syo-Takasaki/20090528/1243484754 を参照してください.

apiアプリの生成

$ ./play new api

api/app/controllers/Mecab.javaの作成

$ which mecab
/usr/bin/mecab
package controllers;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import play.mvc.*;

public class Mecab extends Controller {

    public static void mecab(String sentence) throws IOException {
        StringBuilder sb = new StringBuilder();

        Process process = Runtime.getRuntime().exec("/usr/bin/mecab");
        OutputStream os = process.getOutputStream();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
        bw.write(sentence + "\n");
        bw.flush();
        bw.close();

        InputStream is = process.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String line;
        while((line = br.readLine()) != null){
            sb.append(line).append("\n");
        }

        process.destroy();

        String mecab_result = sb.toString();
        render(mecab_result);
    }

}

app/views/Mecab/mecab.htmlの作成

${mecab_result}

実行!

$ ./play run api

ブラウザから,以下にアクセスしてみる.

http://127.0.0.1:9000/Mecab/mecab?sentence=形態素解析してくれぃ.