[Storm] Storm与asm的恩恩怨怨

asm的引用冲突

1. Jersey & Storm 0.9.3

  • jersey 1.8 (which depends on asm 3.0)
  • Storm 0.93 (which depends on asm 4.0)

When runs in JDK7 and excludes storm#asm,everything works well. While runs in JDK8, then we got arraysOutofBounds exception. 

The root cause is asm 3.0 do not support java8 (currently only asm 5+ support JDK8) 

The final solution we use is to update jersey to 1.19.1 (depends on asm 5.0).

2. Storm 0.9.3 & JDK8

和1类似,Storm 0.9.3使用asm 4.0,而asm 4.0不支持JDK8。

The final solution is to replace directly asm 4.0 with asm-all 5.0

asm的总结

  • asm 5.0向后兼容asm 4.0的功能
  • JDK8只能用asm 5来对付了
  • Storm支持JDK8,关键就看asm的版本了
  • HDP 2.4, storm version is 0.10.0, asm 4.0 is still used?

 

原文地址:https://www.cnblogs.com/qingwen/p/5679115.html