Play
Play frameworkのインストールと設定…2.1を公式からDLして適当に入れて行けるかと思ったけどなんかちょっとややこしそうなのでググってみた。
おっとけよ CentOSにPlay frameworkインストール
を参考にすすめてみる。
無事動いたブラウザから見えた。
VMWareの共有フォルダ機能を有効にしておく
@IT総合トップ > Linux & OSS > Linux Tips Index > VMwareのフォルダ共有機能を使うには
を参考にした。
VMWareの管理>仮想マシン設定>オプション>共有フォルダ
とりあえずshareってフォルダを作成
ln -s /mnt/hgfs/share share
でシンボリックリンク貼っておく
mongoDB
まずはplay関係なくScalaから使える状態に。
cd share
mkdir mongoTest
cd mongoTest
ITの波間にゆーらゆら mongodb+casbah+scala
グニャラくんのwktk運営日記 Scala + finagle + MongoDB + Herokuで2chクローンを作る(連載第2回)
mongoDB公式 1.Getting Started を参考に。
vi build.sbt
name := "mongo test"
version := "1.0.0"
scalaVersion := "2.10.0"
organization := ""
libraryDependencies += "org.mongodb" %% "casbah" % "2.5.0"
保存して
sbt
・
・
・
[success]
って出たのでおk
mkdir -p src/main/scala/mongo.casbah/
vi src/main/scala/mongo.casbah/Sample.scala
package mongo.casbah
object Sample extends App {
println("Ahhhhhhh")
}
でsbt run
Ahhhhhhh
と出たのでこれもおkっぽい
早速Mongoに繋ぐ準備をしてみる
vi src/main/scala/mongo.casbah/Sample.scala
package mongo.casbah
import com.mongodb.casbah.Imports._
object Sample extends App {
val mongoClient = MongoClient()
val mongoDB = mongoClient("casbah_test")
val mongoColl = mongoClient("casbah_test")("test_data")
val newObj = MongoDBObject("foo" -> "bar", "x" -> "y", "pie" -> 3.14, "spam" -> "eggs")
val builder = MongoDBObject.newBuilder
builder += "L2P" -> "NOOB"
builder += "kek" -> "bur"
println(builder.result)
println(newObj.get("foo"))
}
sbt run
[info] Set current project to mongo casbah test (in build file:/mnt/hgfs/share/sbt-mongo/)
[info] Running mongo.casbah.Sample
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
{ "L2P" : "NOOB" , "kek" : "bur"}
bar
[success] Total time: 4 s, completed 2013/04/17 16:56:52
とりあえずセットとゲットはできてるので良しとする。
Playとの連携はまた後ほど調べる。
Redis
Ruby Diary redisインストール(CentOS 6.2)を参考にしつつバージョンだけ変えて実行
wget http://redis.googlecode.com/files/redis-2.6.12.tar.gz
tar xzvf redis-2.6.12.tar.gz
cd redis-2.6.12.tar.gz
make
sudo make install
問題なく終了
redis-server
で起動し、
redis-cli
redis 127.0.0.1:6379>set 1 aaa
OK
redis 127.0.0.1:6379>get 1
"aaa"
動いてるのでおk
developer's diary redis 2.2.12のインストールメモ(amazon Linux)
をまるっと真似してinit.dで起動時実行設定しておく
Play-Plugin-Redis
https://github.com/typesafehub/play-plugins/tree/master/redisREADME.md参照にしつつ
play new sampleApp
cd sampleApp
vi project/Build.scala
val appDependenciesのトコに
"com.typesafe" %% "play-plugins-redis" % "2.0.4"
追加して保存
vi conf/play.plugins
550:com.typesafe.plugin.RedisPlugin
と書いて保存
vi conf/application.conf
ehcacheplugin=disabled
と追加して保存
play update
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.typesafe#play-plugins-redis_2.10;2.0.4: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
と出るので、repoをチェック
http://repo.typesafe.com/typesafe/releases/com/typesafe/
一覧を見ると
play-plugins-redis_2.10/
があるのでそこを開いて見てみる
2.1-09092012-2/ 13-Jan-2013 01:10 -
2.1-1-RC2/ 16-Jan-2013 01:10 -
2.1-RC2/ 13-Jan-2013 01:10 -
RCは避けたいので2.1-09092012-2と言う怪しげな名前のにしてみる
vi project/Build.scala
"com.typesafe" %% "play-plugins-redis" % "2.1-09092012-2"
に修正。
play update
[error] (*:update) sbt.ResolveException: unresolved dependency: org.sedis#sedis_2.10.0;1.1.0: not found
今度はsedisが見つからんとな
ググって見るとこんな記事が見つかった。
Using Redis PubSub with Play 2.1.0
ここに書かれてる通りにresolverを追加してみる。
vi project/Build.scala
import sbt._
import Keys._
import play.Project._
object ApplicationBuild extends Build {
val appName = "sampleApp"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
"com.typesafe" %% "play-plugins-redis" % "2.1-09092012-2"
)
val main = play.Project(appName, appVersion, appDependencies).settings(
resolvers += "org.sedis" at "http://pk11-scratch.googlecode.com/svn/trunk"
)
}
こんな感じに。リトライ。
play update
・
・
・
[info] Done updating.
[success] Total time: 19 s, completed 2013/04/17 16:24:45
成功した模様。とりあえずここまで。
0 件のコメント:
コメントを投稿