使用akka'创建新邮箱类型;s java api获取java.lang.VerifyError

使用akka'创建新邮箱类型;s java api获取java.lang.VerifyError,java,groovy,akka,jvm-arguments,Java,Groovy,Akka,Jvm Arguments,我正在将Akka 2.2.3(使用其Java API)集成到Java/Groovy Spring项目中。一切进展顺利,但在创建自定义邮箱类型(基于有界优先级队列的邮箱)后,我遇到了一个错误: Caused by: java.lang.VerifyError: (class: com/test/pricing/transformer/spring/WorkerPriorityMailbox, method: <init> signature: (Lakka/actor/ActorSys

我正在将Akka 2.2.3(使用其Java API)集成到Java/Groovy Spring项目中。一切进展顺利,但在创建自定义邮箱类型(基于有界优先级队列的邮箱)后,我遇到了一个错误:

Caused by: java.lang.VerifyError: (class: com/test/pricing/transformer/spring/WorkerPriorityMailbox, method: <init> signature: (Lakka/actor/ActorSystem$Settings;Lcom/typesafe/config/Config;)V) Expecting to find object/array on stack
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
    at java.lang.Class.getConstructor0(Class.java:2803)
    at java.lang.Class.getDeclaredConstructor(Class.java:2053)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$2.apply(DynamicAccess.scala:76)
    at scala.util.Try$.apply(Try.scala:161)
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:73)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$3.apply(DynamicAccess.scala:84)
    at scala.util.Success.flatMap(Try.scala:200)
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:84)
    at akka.dispatch.Mailboxes.lookupConfigurator(Mailboxes.scala:195)
    at akka.dispatch.Mailboxes.lookup(Mailboxes.scala:78)
    at akka.dispatch.Mailboxes.getMailboxType(Mailboxes.scala:154)
    at akka.actor.LocalActorRefProvider.actorOf(ActorRefProvider.scala:718)
    at akka.actor.dungeon.Children$class.makeChild(Children.scala:191)
    at akka.actor.dungeon.Children$class.attachChild(Children.scala:40)
    at akka.actor.ActorCell.attachChild(ActorCell.scala:338)
    at akka.actor.ActorSystemImpl.actorOf(ActorSystem.scala:520)
    at akka.actor.ActorRefFactory$actorOf.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
下面是创建参与者的代码:

system.actorOf(Props.create(new WorkerActorCreator(applicationContext, it.start, it.end)).withMailbox("priority-full-over-delta-mailboxtype"))
我认为这与编辑邮箱类型之前的工作无关,但以下是WorkerActorCreator的代码(它将spring注释应用于已创建的参与者):

类WorkerActorCreator实现akka.japi.Creator{
应用上下文应用上下文
漫长的开始
长端
公共WorkerActorCreator(ApplicationContext ac、长起点、长终点)
{
applicationContext=ac
this.start=开始
结束
}
@凌驾
WorkerActor create()引发异常{
println(“创建workerT”)
WorkerActor worker=新WorkerActor(开始、结束)
applicationContext.autowireCapableBeanFactory.autowireBean(工作者)
工人
}
}
知道我做错了什么吗

谢谢


编辑:当使用
-Xverify:none
运行应用程序时,它确实有效,但我不确定这是一个长期解决方案

哇,谢谢虚拟机的论点。至少是这样!
 priority-full-over-delta-mailboxtype {
          mailbox-type = "com.example.pricing.transformer.spring.WorkerPriorityMailbox"
            mailbox-capacity = 1000
          //Other dispatcher configuration goes here
        }
system.actorOf(Props.create(new WorkerActorCreator(applicationContext, it.start, it.end)).withMailbox("priority-full-over-delta-mailboxtype"))
class WorkerActorCreator implements akka.japi.Creator<WorkerActor>{
    ApplicationContext applicationContext
    Long start
    Long end
    public WorkerActorCreator(ApplicationContext ac, Long start, Long end)
    {
      applicationContext = ac
      this.start = start
      this.end = end

    }
    @Override
    WorkerActor create() throws Exception {
      println("creating workerT")
      WorkerActor worker = new WorkerActor(start, end)
      applicationContext.autowireCapableBeanFactory.autowireBean(worker)
      worker
    }

  }