ITPub博客

首页 > 应用开发 > Java > Java ibatis配置问题导致Myeclipse启动web项目失败

Java ibatis配置问题导致Myeclipse启动web项目失败

原创 Java 作者:清风艾艾 时间:2016-12-17 20:02:42 0 删除 编辑
    最近,调试一web项目,由于人员流动或时间问题出现web项目开发中Java ibatis配置问题导致Myeclipse启动web项目失败。
    Myeclipse中使用其自带的tomcat进行run指定的web工程报错,报错信息如下(出于保密及问题说明,报错信息我做了调整):
2016-12-17 12:09:06,915 [main] DEBUG [org.mybatis.spring.SqlSessionFactoryBean]-Parsed mapper file:
'file [C:\Users\Administrator\Workspaces\MyEclipse 8.5\.metadata\.me_tcat\webapps\******\WEB-INF\classes\mapper\AdminLogMapper.xml]'
2016-12-17 12:09:06,941 [main] DEBUG [org.mybatis.spring.SqlSessionFactoryBean]-Parsed mapper file:
'file [C:\Users\Administrator\Workspaces\MyEclipse 8.5\.metadata\.me_tcat\webapps\******\WEB-INF\classes\mapper\AdminMenuMapper.xml]'
2016-12-17 12:09:06,994 [main] INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory]-Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5ff916: defining beans [accountServiceImpl,
......
t_SettleDao]; root of factory hierarchy
2016-12-17 12:09:06,996 [main] ERROR [org.springframework.web.context.ContextLoader]-Context initialization failed
org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'accountServiceImpl': Injection of resource dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'accountDao' defined in file
[C:\Users\Administrator\Workspaces\MyEclipse 8.5\.metadata\.me_tcat\webapps\******\WEB-INF\classes\com\******\dao\AccountDao.class]:
Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory';
nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml]: 
Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: 
Failed to parse mapping resource:
'file[C:\Users\Administrator\Workspaces\MyEclipse 8.5\.metadata\.me_tcat\webapps\******\WEB-INF\classes\mapper\AdminParaMapper.xml]'; 
nested exception is org.apache.ibatis.builder.BuilderException: 
Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: 
Parsing error was found in mapping #{}.  Check syntax #{property|(expression), var1=value1, var2=value2, ...} 
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:306)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1122)
......
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.parseParameterMapping(SqlSourceBuilder.java:127)
... 76 more
2016-12-17 12:09:07 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2016-12-17 12:09:07 org.apache.catalina.core.StandardContext start
严重: Context [/******] startup failed due to previous errors
2016-12-17 12:09:07 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2016-12-17 12:09:07 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2016-12-17 12:09:07 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2016-12-17 12:09:07 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/49  config=null
2016-12-17 12:09:07 org.apache.catalina.startup.Catalina start
信息: Server startup in 11672 ms
     通过以上报错信息,分析得出项目配置文件spring-mybatis.xml中定义的bean名字为accountServiceImpl所依赖的bean名字为accountDao的xml配置文件AdminParaMapper.xml
中有语法错误:Parsing error was found in mapping #{}.  Check syntax #{property|(expression), var1=value1, var2=value2, ...} ,导致accountDao的bean无法创建,
引起accountServiceImpl在 Injection资源accountDao的过程中失败,从而导致sqlSessionFactory创建失败,web项目加载失败。
    排查AdminParaMapper.xml文件,发下以下配置有问题(红色部分是源代码,我已经注释,绿色代码是改正后的代码):
<update id="updateReleaseByM_flag" parameterType="string">
   <!-- update adminpara set paravalue=#{} -->
   update adminpara set paravalue=#{paraValue}

    按照如上分析结果改正配置后,项目启动过程中不再报错得以成功加载。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29357786/viewspace-2130858/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
个人喜欢IT行业,目前从事数据库工作,包括Oracle、mysql、mongodb、sqlserver等数据库的维护,喜欢专研开发技术,尤其对java程序的开发感兴趣。工作经历上,在中国联通系统集成公司、中公网医疗信息技术有限公司做过数据库技术支持;目前在海量数据,负责华东区oracle、mysql、mongodb的维护工作。

注册时间:2015-01-30

  • 博文量
    251
  • 访问量
    544852