2016-07-19 18:20:25,494 ERROR [org.springframework.web.context.ContextLoader] -Context initialization failed
java.lang.RuntimeException: [source error] getPropertyValue (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; in com.alibaba.dubbo.common.byte
code.Wrapper6: inconsistent stack height 5
at com.alibaba.dubbo.common.bytecode.ClassGenerator.toClass(ClassGenerator.java:354)
at com.alibaba.dubbo.common.bytecode.ClassGenerator.toClass(ClassGenerator.java:293)
at com.alibaba.dubbo.common.bytecode.Wrapper.makeWrapper(Wrapper.java:346)
at com.alibaba.dubbo.common.bytecode.Wrapper.getWrapper(Wrapper.java:89)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:429)
at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:284)
at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:245)
at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:144)
at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:109)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:950)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at com.caucho.server.webapp.WebApp.addListenerObject(WebApp.java:2153)
at com.caucho.server.webapp.WebApp.callInitializers(WebApp.java:3482)
at com.caucho.server.webapp.WebApp.startImpl(WebApp.java:3787)
at com.caucho.server.webapp.WebApp.access$700(WebApp.java:208)
at com.caucho.server.webapp.WebApp$StartupTask.run(WebApp.java:5317)
at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)
Caused by: javassist.CannotCompileException: [source error] getPropertyValue (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; in com.alibaba.d
ubbo.common.bytecode.Wrapper6: inconsistent stack height 5
at javassist.CtNewMethod.make(CtNewMethod.java:79)
at javassist.CtNewMethod.make(CtNewMethod.java:45)
at com.alibaba.dubbo.common.bytecode.ClassGenerator.toClass(ClassGenerator.java:322)
... 22 more
Caused by: compile error: getPropertyValue (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; in com.alibaba.dubbo.common.bytecode.Wrapper6: inc
onsistent stack height 5
at javassist.compiler.Javac.compile(Javac.java:104)
at javassist.CtNewMethod.make(CtNewMethod.java:74)
... 24 more
和字节码生成相关,上面的信息还不方便排查是什么原因引起。
PS: http://stackoverflow.com/questions/20038523/what-causes-this-error-java-lang-verifyerror-inconsistent-stack-height-2-1
一个简单解决方法是,把proxy改成用jdk的实现:
javassist.jar 字节码生成。
如果<dubbo:provider proxy="jdk" />或<dubbo:consumer proxy="jdk" />,以及<dubbo:application compiler="jdk" />,则不需要。
详见 User Guide http://dubbo.io/User+Guide-zh.htm
谢谢
我调整了配置,然后我的jdk是1.7的,dubbo是1.6的,有冲突就没用,我排查了这个接口的所有方法, 我发现在Impl里的方法必须带入参,加入了参数,就没有这个问题了,完美启动
Dubbo:2.5.3,遇到类似错误,Debug发现是某个Service与其实现类不一致,引用老的JAR包,导致老的实现类未实现当前接口的方法引起报错。对于这个问题,Dubbo输出的错误信息还不够完整,没法一眼看出问题在哪里。
我也遇到这个问题了,2.5.3的版本,请问service和实现类不一致是什么意思?
XxxService为Dubbo服务,XxxServiceImpl是XxxService的实现类。在本地开发某个版本,对XxxService声明的接口做了调整,前后方法签名不一样。服务提供方的其它项目模块引用老的JAR版本(xxx-provider-1.0.2-SNAPSHOT -> xxx-api-1.0.1,正确:xxx-provider-1.0.2-SNAPSHOT -> xxx-api-1.0.2-SNAPSHOT),引起两边不一致。这样解释说明白了没? @programmeres
Most helpful comment
我调整了配置,然后我的jdk是1.7的,dubbo是1.6的,有冲突就没用,我排查了这个接口的所有方法, 我发现在Impl里的方法必须带入参,加入了参数,就没有这个问题了,完美启动