发表于: 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包冲突,但脑子里没有一个完整的谁改引用谁概念,会很没有头绪。


返回列表 返回列表
评论

    分享到