Last active
December 11, 2015 00:38
-
-
Save oza/4517578 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Tried to work sample program(2. Use in normal way), but failed. http://wiki.msgpack.org/display/MSGPACK/QuickStart+for+Scala | |
# Compiler version : 2.9.1 | |
scala> import org.msgpack._ | |
import org.msgpack._ | |
scala> import org.msgpack.annotation.Message | |
import org.msgpack.annotation.Message | |
scala> import org.msgpack.ScalaMessagePack._ | |
import org.msgpack.ScalaMessagePack._ | |
scala> @Message | |
| class SampleClass { | |
| var name : String = "hoge" | |
| var number : Int = 2 | |
| } | |
defined class SampleClass | |
scala> val sc = new SampleClass() | |
sc: SampleClass = SampleClass@27d03700 | |
scala> sc.name = "Test object" | |
sc.name: String = Test object | |
scala> sc.number = 123456 | |
sc.number: Int = 123456 | |
scala> val b : Array[Byte] = write(sc) // | |
org.msgpack.MessageTypeException: org.msgpack.template.builder.TemplateBuildException: javassist.CannotCompileException: [source error] no such class: SampleClass | |
at org.msgpack.template.TemplateRegistry.buildAndRegister(TemplateRegistry.java:516) | |
at org.msgpack.template.TemplateRegistry.lookupAfterBuilding(TemplateRegistry.java:413) | |
at org.msgpack.template.TemplateRegistry.lookup(TemplateRegistry.java:246) | |
at org.msgpack.MessagePack.write(MessagePack.java:195) | |
at org.msgpack.ScalaMessagePackWrapper$class.write(ScalaMessagePack.scala:63) | |
at org.msgpack.ScalaMessagePack$.write(ScalaMessagePack.scala:42) | |
at .<init>(<console>:25) | |
at .<clinit>(<console>) | |
at .<init>(<console>:11) | |
at .<clinit>(<console>) | |
at $print(<console>) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | |
at java.lang.reflect.Method.invoke(Method.java:597) | |
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704) | |
at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:914) | |
at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:546) | |
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:577) | |
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:543) | |
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:694) | |
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:745) | |
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:651) | |
at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:542) | |
at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:550) | |
at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:822) | |
at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:851) | |
at xsbt.ConsoleInterface.run(ConsoleInterface.scala:57) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | |
at java.lang.reflect.Method.invoke(Method.java:597) | |
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73) | |
at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:64) | |
at sbt.Console.console0$1(Console.scala:23) | |
at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:24) | |
at sbt.TrapExit$.executeMain$1(TrapExit.scala:33) | |
at sbt.TrapExit$$anon$1.run(TrapExit.scala:42) | |
Caused by: org.msgpack.template.builder.TemplateBuildException: javassist.CannotCompileException: [source error] no such class: SampleClass | |
at org.msgpack.template.builder.BuildContext.build(BuildContext.java:75) | |
at org.msgpack.template.builder.ScalaBuildContext.buildTemplate(ScalaBuildContext.scala:51) | |
at org.msgpack.template.builder.JavassistScalaTemplateBuilder.buildTemplate(JavassistScalaTemplateBuilder.scala:53) | |
at org.msgpack.template.builder.AbstractTemplateBuilder.buildTemplate(AbstractTemplateBuilder.java:61) | |
at org.msgpack.template.TemplateRegistry.buildAndRegister(TemplateRegistry.java:503) | |
... 37 more | |
Caused by: javassist.CannotCompileException: [source error] no such class: SampleClass | |
at javassist.CtBehavior.setBody(CtBehavior.java:417) | |
at javassist.CtBehavior.setBody(CtBehavior.java:383) | |
at javassist.CtNewMethod.make(CtNewMethod.java:138) | |
at org.msgpack.template.builder.BuildContext.buildWriteMethod(BuildContext.java:119) | |
at org.msgpack.template.builder.BuildContext.build(BuildContext.java:64) | |
... 41 more | |
Caused by: compile error: no such class: SampleClass | |
at javassist.compiler.MemberResolver.searchImports(MemberResolver.java:465) | |
at javassist.compiler.MemberResolver.lookupClass(MemberResolver.java:409) | |
at javassist.compiler.MemberResolver.lookupClassByJvmName(MemberResolver.java:319) | |
at javassist.compiler.MemberResolver.resolveJvmClassName(MemberResolver.java:509) | |
at javassist.compiler.MemberCodeGen.resolveClassName(MemberCodeGen.java:1145) | |
at javassist.compiler.CodeGen.atDeclarator(CodeGen.java:712) | |
at javassist.compiler.ast.Declarator.accept(Declarator.java:100) | |
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351) | |
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50) | |
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351) | |
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50) | |
at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:292) | |
at javassist.compiler.Javac.compileBody(Javac.java:223) | |
at javassist.CtBehavior.setBody(CtBehavior.java:409) | |
... 45 more | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Because you use REPL.
Default MessagePack's class loader can't refer REPL class loader.
You should init MessagePack class by yourself with REPL's class loader.
(But I don't know about class loader so much.So I don't know how to pass REPLS's class loader)