Scalatra 2.3でスタンドアローン版jarをビルドする

Scala

Scalatraのスタンドアローン版jarのビルドについは下記ガイドが参考になりますが、sbt-assemblyプラグインの組み込みかたが省略されています。
http://www.scalatra.org/2.3/guides/deployment/standalone.html

sbt-assemblyの組み込み手順は下記の通りです。

  • src/main/scala/com/example/JettyLauncher.scala

ガイド通り、埋め込みJettyを起動するobjcet JettyLauncherを追加します。

  • project/plugins.sbt

plugins.sbtに下記行を追加します。

 addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")

変更後のplugins.sbtの例は下記の通りです。

 addSbtPlugin("com.mojolly.scalate" % "xsbt-scalate-generator" % "0.5.0")
 
 addSbtPlugin("org.scalatra.sbt" % "scalatra-sbt" % "0.3.5")
 
 addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
  • project/build.scala

下記パッケージのインポートを追加します

 import sbtassembly.Plugin._
 import AssemblyKeys._

Projectの引数に下記を追加します。(scalatraSettingsの後ろなど)

 ++assemblySettings 

するとsettingsの1行目は下記のようになります。

 settings = ScalatraPlugin.scalatraWithJRebel ++ scalateSettings ++ assemblySettings ++ Seq(

libraryDependanciesのjetty-webappの”container”を”container;compile”に置き換えます。

 "org.eclipse.jetty" % "jetty-webapp" % "9.1.3.v20140225" % "container;compile",

変更後のbuild.scalaの例は下記の通りです。

 import sbt._
 import Keys._
 import org.scalatra.sbt._
 import org.scalatra.sbt.PluginKeys._
 import com.mojolly.scalate.ScalatePlugin._
 import ScalateKeys._
 import sbtassembly.Plugin._
 import AssemblyKeys._
 
 object MyScalatraWebAppBuild extends Build {
   val Organization = "com.example"
   val Name = "My Scalatra Web App"
   val Version = "0.1.0-SNAPSHOT"
   val ScalaVersion = "2.11.1"
   val ScalatraVersion = "2.3.0"
 
   lazy val project = Project (
     "my-scalatra-web-app",
     file("."),
     settings = ScalatraPlugin.scalatraWithJRebel ++ scalateSettings ++ assemblySettings ++ Seq(
       organization := Organization,
       name := Name,
       version := Version,
       scalaVersion := ScalaVersion,
       resolvers += Classpaths.typesafeReleases,
       libraryDependencies ++= Seq(
         "org.scalatra" %% "scalatra" % ScalatraVersion,
         "org.scalatra" %% "scalatra-scalate" % ScalatraVersion,
         "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
         "ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
         "org.eclipse.jetty" % "jetty-webapp" % "9.1.3.v20140225" % "container;compile",
         "org.eclipse.jetty" % "jetty-plus" % "9.1.3.v20140225" % "container",
         "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar")),
         "org.scalatra" %% "scalatra-json" % "2.3.0",
       ),
       scalateTemplateConfig in Compile <<= (sourceDirectory in Compile){ base =>
         Seq(
           TemplateConfig(
             base / "webapp" / "WEB-INF" / "templates",
             Seq.empty,  /* default imports should be added here */
             Seq(
               Binding("context", "_root_.org.scalatra.scalate.ScalatraRenderContext", importMembers = true, isImplicit = true)
             ),  /* add extra bindings here */
             Some("templates")
           )
         )
       }
     )
   )
 }

これで、jettyを埋め込んだスタンドアローン版をビルドできます。

 sbt clean assembly         

SandBox

#nofollow
#norelated

SandBox: お砂場(練習ページ)です

#contents

”見出し”

大見出し 1

中見出し 1-1

小見出し 1-1-1

  • 項目1
  • 項目2
  • 項目3

段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1
段落1段落1段落1段落1段落1段落”強調”1段落1段落1段落1段落1段落1
段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1

段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2
段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2
段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2

中見出し 1-2

:用語1|いろいろ書いた解説文1と”強調単語” ((注釈1: WikiName))
段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1
段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1
段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1
:用語2|いろいろ書いた解説文2 ((注釈2: SandBoxへのリンク))
:用語3|いろいろ書いた解説文3 ((注釈3: 注釈の中にも((注釈の注釈を))作ることができます))


大見出し 2

小見出し 2-1

小見出し 2-2

段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1
段落1段落1段落1段落”’イタリック”’1段落1段落1段落1段落1段落1段落1段落1
段落1段落1段落1段落””’イタリックボールド””’1段落1段落1段落1段落1段落1
> 段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2
> 段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2
> 段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2段落2

レベル0レベル0レベル0レベル0レベル0レベル0
> レベル1
> レベル1
> レベル1
>> レベル2
>> レベル2
>> レベル2
>>> レベル3

  • はろ1
  • – はろ2

ろろろろ2

  • — はろ3
  • – はろ2
  • — はろ3
  • – はろ2
  • — はろ3

>>> レベル3
>>> レベル3
>>> レベル3

”日付”

 日付 &date;
  • 日付 2004-08-16
 date?
  • 2004-08-16
 時刻 &time;
  • 時刻 07:29:03
 time?
  • 07:29:03
 日時 &now;
  • 日時 2004-08-16 (月) 07:30:27
 now?
  • 2004-08-16 (月) 07:29:03

”リンク”

URLやメールアドレスは自動的にリンクになります

”その他の文字装飾”

 整形済みテキスト整形済みテキスト整形済みテキスト
 整形済みテキスト整形済みテキスト整形済みテキスト

COLOR(#993333){ 色の変更も可能なルール(COLOR(#993333)) }

SIZE(10){ サイズの変更も可能なルール(SIZE(10)) }

SIZE(20){ COLOR(#333399){ 両方指定(SIZE(20)COLOR(#333399)) } }

%%打ち消し線%%

左寄せ
CENTER:中寄せ
RIGHT:右寄せ

Safari Javascriptをデバッグする

Javascript
iPhone

SafariでJavascriptをデバッグする方法

Safari5.0.3

SafariでFirebugのようにJavascriptをデバッグする方法があります。
以下、手順です。

  1. ヘッドメニューの「編集」→「詳細」をクリック
  2. メニューバーに“開発”メニューを表示とあるのでチェック
  3. ヘッドメニューに「開発」というメニューが増えているので、クリックしてJavascriptのデバッグを開始をクリック

下記のAppleのsafariデベロッパーサイトに、ちょっと面倒な方法が書いてありますが、最新版では上記のように簡単にできるようです。
http://developer.apple.com/jp/internet/safari/faq.html#anchor14

STUDIOMX 2004 インストールができない

Windows トラブル解決

Macromedia STUDIOMX2004のインストールが、途中で「この自己解凍型ファイルは壊れています。インストールを中止します」というメッセージで止まってしまう。

Dreamweaver MX 2004、Flash MX 2004など個別のインストールも同様にできない。
OS:WindowsXP Pro

最善の方法かわかりませんが、CDの中身をハードディスクにコピーしてインストールしてみることで、治ることがあります。

SSL証明書の有効期限を確認する

Linuxサーバー

  • SSL証明書ファイルの期限を表示する
  openssl x509 -noout -dates -in cert.pem           
  • HTTPS経由でSSL証明書を取得して期限を表示する
 openssl s_client -connect example.com:443 < /dev/null 2> /dev/null | openssl x509 -dates -noout

結果の例は以下のようになります。

 notBefore=Nov  3 00:00:00 2015 GMT
 notAfter=Nov 28 12:00:00 2018 GMT