zoukankan      html  css  js  c++  java
  • 大批量推送项目日记(七):验收会议与BeanCreationException

    2020.8.17

    日记

    今天开了验收会议。

    会议持续时间为10:00-11:40,会上,每个小组从功能的角度展示了一遍各自工作的完成情况(之前的会议是从代码角度展示的),也就是打开网页实际操作一下,然后大家一起讨论分析,经理指出不完善的地方并记录。

    会后,各自抓紧时间修改了不完善的地方。

    下午14:00,开始完整流程自测。先将数据库的测试数据清空,然后启动测试服务器上发版的war包,打开网页进行测试。先模拟了数据最少的情况,将整个流程测试了一次。基本没有大问题。

    之后就准备提交给测试人员正式测试了。

    之前遇到的问题

    上周五按照计划是应该将项目部署到测试服务器并开始自测的,然而遇到了一个问题:

    将项目打成war包上传到服务器并启动时,服务器报错:

    org.springframework.beans.factory.BeanCreationException: Error creating bean name 'XXXXXX' defined in VFS resource ["/content/xiangmu.war/WEB-INF/classes/META-INF/app_config/context/context-xxxname.xml"]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitia   lizerError

    ......

    这个错误的意思是说,在你的【context-xxxname.xml】文件中,有一个bean的名字是【XXXXXX】的,无法创建出来;

    这是一个自己写的一个初始化bean的xml文件,这些bean是定时任务用的(spring框架下的定时任务)。

    出现了问题,就要想办法解决问题,步骤如下:

    1.找到是哪个同事写的,让他解决,其他人帮忙;

    2.找了半天,发现是这个同事在java中直接用注解注入了mapper.java,然后上测试服务器后就找不到bean了;神奇的是在本地没有问题。

    3.由于用到了公司自己封装的spring框架,按照常规,定时任务中应该写构造方法传入service对象(通过service调用mapper),然后在xml中配置service对象(而不是在定时任务java中直接用注解注入mapper对象);因此该同事修改了方法,上测试服务器后就正常了。(至于为什么直接注入mapper.java会找不到bean,还不太清楚。)

    关于该问题的分析

    这个问题导致自测时间延迟了3天(同事周五加班都没找出来,周日来加班才解决);

    这个问题的难点是在本地自测没有问题,只有测试服务器上才报这个错;

    关于这个问题的推测:

    1.公司封装的spring框架不太好,只能按照规则注入service,从service中调mapper;如果直接注入mapper,在不同环境下可能会发生找不到bean的问题(例如不同tomcat版本、不同jdk版本)

    2.本地用的是tomcat,而测试服务器用的是jboss,据说jboss对spring的兼容不是很好,因此当spring中使用xml配置定时任务时,如果配置不得当,可能会出现tomcat下能用、而jboss下不能用的情况。

    3.如果不是定时任务的情况下,直接在java中注入mapper也应该是可以的;但如果是在xml中配置了定时任务的形式,有可能在初始化定时任务的bean时,无法从spring容器中获取用到的mapper(在java中用注解注入,此时spring容器还没有将mapper初始化);如果在xml中配置,spring容器就能根据配置内容找到对应类并初始化了。

    -------------------------------------------------------------------

    后记

    这篇文章连我自己都感觉说的不清不楚(因为感觉确实不太清楚问题与解决方法,只是想办法解决了而已)。

    本地tomcat下没问题,测试服务器jboss下有问题,这个问题也搞不明白。

    得出的结论大致如下:

    jboss有可能出现使用注解注入的bean无法create的情况,这时要改为使用构造方法从xml中配置bean的方式。

  • 相关阅读:
    ubuntu下安装maven
    159.Longest Substring with At Most Two Distinct Characters
    156.Binary Tree Upside Down
    155.Min Stack
    154.Find Minimum in Rotated Sorted Array II
    153.Find Minimum in Rotated Sorted Array
    152.Maximum Product Subarray
    151.Reverse Words in a String
    150.Evaluate Reverse Polish Notation
    149.Max Points on a Line
  • 原文地址:https://www.cnblogs.com/codeToSuccess/p/13906217.html
Copyright © 2011-2022 走看看