Lifty/lifty — Issue #2: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Author: darthdeus
Created: 2011-11-16 13:38:43+00:00
State: open

I'm using sbt 0.11 and Scala 2.9.1. Following the instructions for the new 1.7 release, I end up getting error of a missing SLF4J library

```
> lifty learn lift https://raw.github.com/Lifty/lifty/master/lifty-recipe/lifty.json
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.
[error] java.lang.NullPointerException
[error] Use 'last' for the full log.
```

and here's a full stack trace

```
> last
java.lang.NullPointerException
at scala.collection.mutable.ArrayOps$ofRef.newBuilder(ArrayOps.scala:113)
at scala.collection.mutable.ArrayOps$ofRef.newBuilder(ArrayOps.scala:108)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:211)
at scala.collection.mutable.ArrayOps.filter(ArrayOps.scala:38)
at org.lifty.engine.io.Storage$$anonfun$recipe$1.apply(Storage.scala:52)
at org.lifty.engine.io.Storage$$anonfun$recipe$1.apply(Storage.scala:57)
at scalaz.effects.IO$$anon$3$$anonfun$pure$1.apply(IO.scala:100)
at scalaz.effects.IO$$anon$3$$anonfun$pure$1.apply(IO.scala:100)
at scalaz.effects.IO$$anon$2.apply(IO.scala:96)
at scalaz.effects.IO$class.unsafePerformIO(IO.scala:12)
at scalaz.effects.IO$$anon$2.unsafePerformIO(IO.scala:95)
at org.lifty.engine.io.Storage$$anonfun$storeRecipe$1.apply(Storage.scala:68)
at org.lifty.engine.io.Storage$$anonfun$storeRecipe$1.apply(Storage.scala:68)
at scalaz.effects.IO$$anon$3$$anonfun$pure$1.apply(IO.scala:100)
at scalaz.effects.IO$$anon$3$$anonfun$pure$1.apply(IO.scala:100)
at scalaz.effects.IO$$anon$2.apply(IO.scala:96)
at scalaz.effects.IO$class.unsafePerformIO(IO.scala:12)
at scalaz.effects.IO$$anon$2.unsafePerformIO(IO.scala:95)
at org.lifty.engine.Lifty$$anonfun$org$lifty$engine$Lifty$$runCommand$2$$anonfun$apply$2.apply(Lifty.scala:54)
at org.lifty.engine.Lifty$$anonfun$org$lifty$engine$Lifty$$runCommand$2$$anonfun$apply$2.apply(Lifty.scala:52)
at scala.Option.map(Option.scala:133)
at org.lifty.engine.Lifty$$anonfun$org$lifty$engine$Lifty$$runCommand$2.apply(Lifty.scala:52)
at org.lifty.engine.Lifty$$anonfun$org$lifty$engine$Lifty$$runCommand$2.apply(Lifty.scala:51)
at scala.Option.flatMap(Option.scala:146)
at org.lifty.engine.Lifty$class.org$lifty$engine$Lifty$$runCommand(Lifty.scala:51)
at org.lifty.engine.Lifty$$anonfun$run$2.apply(Lifty.scala:34)
at org.lifty.engine.Lifty$$anonfun$run$2.apply(Lifty.scala:32)
at scala.Option.map(Option.scala:133)
at org.lifty.engine.Lifty$class.run(Lifty.scala:32)
at org.lifty.engine.LiftyInstance.run(Lifty.scala:165)
at org.lifty.Lifty$$anonfun$liftyCommand$1.apply(Lifty.scala:94)
at org.lifty.Lifty$$anonfun$liftyCommand$1.apply(Lifty.scala:18)
at sbt.Command$$anonfun$sbt$Command$$apply1$1$$anonfun$apply$6.apply(Command.scala:73)
at sbt.Command$.process(Command.scala:91)
at sbt.MainLoop$$anonfun$next$1$$anonfun$apply$1.apply(Main.scala:86)
at sbt.MainLoop$$anonfun$next$1$$anonfun$apply$1.apply(Main.scala:86)
at sbt.State$$anon$1.process(State.scala:60)
at sbt.MainLoop$$anonfun$next$1.apply(Main.scala:86)
at sbt.MainLoop$$anonfun$next$1.apply(Main.scala:86)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:13)
at sbt.MainLoop$.next(Main.scala:86)
at sbt.MainLoop$.run(Main.scala:81)
at sbt.MainLoop$$anonfun$runLogged$1.apply(Main.scala:75)
at sbt.MainLoop$$anonfun$runLogged$1.apply(Main.scala:72)
at sbt.Using.apply(Using.scala:25)
at sbt.MainLoop$.runLogged(Main.scala:72)
at sbt.MainLoop$.runLogged(Main.scala:62)
at sbt.xMain.run(Main.scala:33)
at xsbt.boot.Launch$.run(Launch.scala:54)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:43)
at xsbt.boot.Launch$.launch(Launch.scala:68)
at xsbt.boot.Launch$.apply(Launch.scala:14)
at xsbt.boot.Boot$.runImpl(Boot.scala:24)
at xsbt.boot.Boot$.main(Boot.scala:15)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.NullPointerException
[error] Use 'last' for the full log.
```