发表于: 2017-08-21 13:31:32
3 1054
今天完成的事情:
1、准备小课堂,strut2 与 springMVC的区别。
把 struts2 作为 web 框架试一试。
先在 carrots-admin-web 中引入了struts核心包,
结果启动的时候报错,下面截图只是一小部分,所有报错都带有
“java.lang.NoSuchMethodError: org.objectweb.asm.ClassReader.accept(Lorg/objectweb/asm/ClassVisitor;I)V”
。
首先打开 idea 的依赖分析器 ,发现 asm 1.5.3 爆红了。也就是说 asm1.5.3 版本并没有被使用。
从 maven 工具栏打开 show depencencies,在大图的依赖图里可以发现 asm 这个包的确是被 struts2-core 所间接引用到的。而从 asm-tree 指向 3.3版本的 asm 的连线是红色的。
再搜索了一下其他地方有没有“asm”。果然,由于 maven 的“最短路径依赖”,项目中所使用的是 cglib 所依赖的 1.5.3版本的asm。
在 admin-web 的 pom 里找到 cglib,加入对 asm 的排除。
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.1_3</version>
<exclusions>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
</exclusions>
</dependency>
然后再次启动项目,就能成功将 web 项目纳入到 struts2 的管辖了。
这是我写的测试 action,能够成功访问到。(这里又发生了一个报错,打着@configuration注解的 shiroConfig 在项目启动时报错了。所以这里依然存在着maven的jar包冲突,现在我暂时将 @configuration 去除,也就是不用shiro 的情况下,struts2 能正常使用。)
明天计划的事情:
1、周一启宸师兄主持了北京这里首席的晨会。尤其强调了不允许散漫的学习氛围。
我上周错在没有及时提出进真实项目,现在可能还需要等几天。
遇到的问题:
1、还是maven依赖冲突的问题。
虽然 在 cglib 中排除了对 asm 的依赖。可是项目再次启动时,
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
感觉还是 cglib 的 asm 包出了问题,但却找不到原因。
收获:
1、我需要查一查cglib 和 asm 是啥,不然遇到这种问题,虽然知道是jar包冲突,但脑子里没有一个完整的谁改引用谁概念,会很没有头绪。
评论