在本地可以运行,但测试环境上报错:
0000001c EndpointMetho E com.newchinalife.HesitPeriodCTSrvPortTypeImplBL (initialization failure)
java.lang.NoClassDefFoundError: com.newchinalife.HesitPeriodCTSrvPortTypeImplBL (initialization failure)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
at com.newchinalife.HesitPeriodCTSrvPortTypeImpl.hesitPeriodCT(HesitPeriodCTSrvPortTypeImpl.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
最后从测试环境取.class文件反编译,发现HesitPeriodCTSrvPortTypeImplBL.java中写的一个内部类没有反编译出来。
因为在我们的工作流程中,发布测试环境时只会发布.java的同名.class文件(除非特别告知),而内部类本身有自己的.class文件,需要一同发布。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
网上分析的情况很多,比较详细的有:
https://blog.youkuaiyun.com/jamesjxin/article/details/46606307
https://blog.youkuaiyun.com/u013063153/article/details/72864265