2015-01-01から1年間の記事一覧

kuromojiとユーザ辞書

Javaで形態素解析を行うライブラリに「kuromoji」があります。そのままでもかなり使えるんですが、辞書が割りと貧弱です。例えば「欧州中央銀行」だと欧州 中央 銀行となります。一般的な単語でも分割されてしまいます。検索では良いかもしれませんが一つの…

filterの書き方 その2

前回は全体に適用されるFilterの書き方について説明しました。 今回は特定のリクエストのみにFilterを適用させてみます。例えば、ログインしているかを確認する必要がある画面のみに適用させる場合です。今回は自作のアノテーションを作成します。 今回はCoo…

filterの書き方

filterはservletのfilterと同様に特定の処理の前後に処理を追加できます。以下の2つのFilterのインターフェイスがあります。 javax.ws.rs.container.ContainerRequestFilter javax.ws.rs.container.ContainerResponseFilter ContainerRequestFilter リクエス…

Restful APIでの「ステートフル」について

REST(Restful API)では通常、通信はステートレスです。それは、HTTPプロトコル自体がステートレスだからです。 しかし、ログインが発生するようなWebアプリケーションの場合通信は(通信全体としてみると)ステートフルになります。では、「ステートレス」とは…

resourceクラスの書き方

Jerseyはプレーンなクラス(POJO)で簡単にresourceクラスがかけます。resourceクラスとは、URL指定して一番最初にアクセスされるクラスでServletみたいなもんです。 書き方はこんな感じです。URI:/hoge/foo @Path("hoge") public class HogeResource { @GET @…

Jerseyことはじめ

Jerseyとは、「RESTful Web Services」を構築するためのフレームワークです。 JAX-RS (JSR 311 & JSR 339) のリファレンス実装です。 WebAPIを簡単に実装できますよって話です。 詳しくはこちら。 Jerseyで開発をするにあたり、いくつか設定が必要です。 今…

DBUnitとH2 Databaseを使ってみた。

「JUnit実践入門 ~体系的に学ぶユニットテストの技法」を参考にしてDAOのテストケースを作成したのでメモ。 JunitをベースにDBUnit、H2 Databaseを使ってテストしました。 本番で稼働させているのはMySQLなんですが、単体テストのときはテスト環境に依存しな…

crontabのあれこれ

Linuxで特定のタイミングで処理を実行させる仕組みです。詳しくは crontab - Wikipediaを参照してください。とりあえず書き方のサンプルです。環境はCentOS6.2です。 */5 * * * * cd /home/user; java -jar sample.jar >> sample.log 意味:5分ごとにsample.…

maven のtomcat デプロイ

Maven3でwarファイルをビルドしてTomcat7にデプロイする - 量産型備忘録 を参考にさせていただきました。 便利なんですが、Maven:cleanが実行されないと変なゴミ(特に設定ファイル系)が残ることがある。「target」にある自動生成されるファイルがcleanによっ…

JAX-RS(Jersey)のcookieはデフォルトではセキュアではない?

Responseにセットできるcookieのsecure属性。省略できるけど、デフォルトはfalseになってる。気を付けたい。具体的には以下のメソッド。javax.ws.rs.core.NewCookie.NewCookie(javax.ws.rs.core.Cookie cookie)このメソッドは、javax.ws.rs.core.Cookieを引…

ssh で接続できない事象が発生したら

先日、SSHコンソール(Tera Term)で接続しようとしたら接続出来なくなってしまいました…いろいろな設定を無邪気にいじくり回すのは良くないですね。接続できるようになるまでに色々いじっていたら直ったのですがどこが決定的だったのかは分からない。おそらく…

Linux環境でのjar ファイルの実行

【コマンド】 nohup java -jar sample.jar > out.log > err.log言い訳から入りますが、Webが専門なもんで、中々実行可能なjarファイルを作って実行するってやったことなかった。そのため、めちゃくちゃ基礎的な内容が含まれている可能性があります。 Javaエ…

CentOS 6.2 セットアップ

前提 ・リモートから接続する際には、Windows 7を使用します。 ・接続の際には、Tera Termを使用します。 ・必要に応じて、WinSCPも使用します。お名前.com KVMの1Gプランを契約したのでOSのセットアップからWebサービス公開までの手順をまとめます。 ここで…