0

I'm trying to understand the absolute most basic of use of scala-js pickling, but there is something really obvious missing.

I thought something along the below should work:

package tst

import org.scalajs.spickling._
import org.scalajs.spickling.jsany._

object RH {

  case class Test(Message:String)

  PicklerRegistry.register[Test]

  def main(args: Array[String]) {
      PicklerRegistry.pickle(Test("XXX"))
  }

}

But when I run the above I get a backtrace saying:

Exception in thread "main" java.lang.RuntimeException: stub
at scala.sys.package$.error(package.scala:27)
at scala.scalajs.js.Any$.fromString(Primitives.scala:48)
at org.scalajs.spickling.jsany.JSPBuilder$.makeString(JSPBuilderReader.scala:10)
at org.scalajs.spickling.jsany.JSPBuilder$.makeString(JSPBuilderReader.scala:6)
at org.scalajs.spickling.Pickler$StringPickler$.pickle(Pickler.scala:58)
at org.scalajs.spickling.Pickler$StringPickler$.pickle(Pickler.scala:56)
at org.scalajs.spickling.BasePicklerRegistry.pickle(PicklerRegistry.scala:60)
at tutorial.webapp.RH$GenPickler$2$.pickle(RH.scala:10)
at tutorial.webapp.RH$GenPickler$2$.pickle(RH.scala:10)
at org.scalajs.spickling.BasePicklerRegistry.pickle(PicklerRegistry.scala:60)
at tst.RH$.main(RH.scala:13)
at tst.RH.main(RH.scala)

Any clues what I have been missing here?

  • Is the project supposed to be a Scala.js project, or a Scala/JVM project? It looks like you're using a Scala.js library in a Scala/JVM project. – sjrd Oct 09 '14 at 15:50
  • It is supposed to be a scala.js project, but the above is run as scala. Does that make a difference, ie should I get a different result if I try to run it as scala.js ? – Björn Julander Oct 09 '14 at 16:55
  • Yes, you should have different results. The code is hitting parts of the Scalajs library that represent Javascript libraries, and don't really exist on the JVM. – sjrd Oct 09 '14 at 23:12
  • Thanks, tunning it as scala-js made it work nicely! – Björn Julander Oct 10 '14 at 06:56

0 Answers0