iptablesでNAT変換しTOMCATをポート80で動かす

色々やりかたはあると思うのですが、ROOT権限で動かしたくなかったので

iptablesでNAT変換します

RUBYのgsubでアポストロフィ[’]をエスケープ

ちょっと悩んだのでメモ

  • NG

  • OK

Windowsでシンボリックリンクを作成

どうやらWindowsでもシンボリックリンクが作成できるようです。Vista以降。

というのもScalaのベータ版を使ってみたいがためいちいち入れ替えるのもあれなので、うまくできないかなと探していたところ以下の記事を発見

http://blog.livedoor.jp/s_imai_jp/archives/51360129.html

Javaで自ホストのIPアドレスで127.0.0.1以外を取得する

ちょっと困ったのでメモ

通常JavaのInetAddress.getLocalHost().getHostAddress()から取得できるIPアドレスは127.0.0.1

これではちょっと使えません

ネットワークインターフェースを調べるとちゃんとした?IPアドレスが取得できます

javascriptでサブドメインの異なるサイトでクッキーの共有

こちらの記事を参考にJavascriptでサブドメインの異なるサイト間でクッキーの恭有してみました。

http://d.hatena.ne.jp/dirablue/20090506/1241607961

http://www1.example.com/setCookie.html

  • setCookie.html

http://www2.example.com/getCookie.html

  • getCookie.html

ポイントはHTMLを設置するパスを同じにすることとdomain指定の前にドットをつけることでしょうか?

あとIDやパスワードをクッキーに保存してはいけません^^);

eclipse+tomcatでアクセスログの場所

意外とわからなかったのでメモ。

環境

  • eclipse kelpher
  • tomcat 7
  • java 7

手順

  1. プロジェクトの作成でWebーDynamicWebで作成
  2. Eclipseの環境設定のServer、RuntimeEnvironmentsにtomcat 追加
  3. プロジェクトのpropertiesからjava build pathのLibrariesにadd LibrariesからServer Runtime のTOMCATを追加
  4. なんか作成
  5. Debug AsのDebug ConfigurationからTomcatのargumentsを確認
  6. ここの-Dcatalina.baseのパス以下にTOMCATのいろいろなものが入っている(/Users/username/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0)
  7. このlogs以下にアクセスログが作成される

PlayFramework2.1でセッションタイムアウトを作ってみた

PlayFrameworkのセッションはCookieになります。ブラウザを閉じるまで有効なので、従来のservletなどで実現してきたsessionの観念はありません。

これが意外と困ってしまうので(タイムアウトした際にログアウトさせるなど)Cookieに時間を持たせることによりにたようなものを実装してみました

routes

controllers.Application.scala

helper.Login.scala

本来ならばログインIDとパスワードとつきあわせてチェックするのですがとりあえず必ずOKになるように

helper.Session.scala

クッキーに保存した時刻と現在時刻を比較し、ログアウトの判定

views.index.scala.html

views.login.scala.html

ログイン後1分放置するとログイン画面に戻ります

Slick+PlayFramework2.1でDBアクセスしjsonで出力

実際の業務では、サンプルなどでよく見かける、データの作成、更新、参照、削除という流れは実際ではあまりなく、既にあるデータを参照するだけとか祖いうのが多いかと思います。

前回までで、既存データベースに入っているデータを取得することができたので、JSON形式で出力してみます。

GSON

sjsonやPlay標準のJSONなど何種類かあるようですが、ちょっと試したところうまくいかなかったので、GSONを使用することにしました。

あらかじめGSONをダウンロードしておきeclipseのパスに追加しておきます。

http://code.google.com/p/google-gson/

mysql

application.conf

routes

controllers.Data.scala

models.Price.scala

views.json.scala.html

jsonp用

Slick+PlayFramework2.1でDBアクセス#2

既存のデータベースにアクセスしてみます。

DBのコネクションをPlayFrameworkから与えることでモデル側でコネクションを作成しません

MySQL

application.conf

routes

controllers.Application.scala

models.Price.scala

views.index.scala.html