SSH整合时,一直不成功,出现如下错误,错误太多了,不知道怎么改.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH整合时,一直不成功,出现如下错误,错误太多了,不知道怎么改.相关的知识,希望对你有一定的参考价值。
我用spring和hibernate整合时,用junit测试,一点没错,但是加入struts2时,出现了太多错误了,大家看看吧!在线等待!
首先加入struts2的jar时,运行junit就会出现问题了:如:
警告: Failed to classload type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be unavailable.
java.lang.ClassNotFoundException: org.testng.annotations.BeforeTest
java.lang.ClassNotFoundException: org.testng.annotations.AfterTest
然后配置Struts后,运行:会出现:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.hibernate.cfg.AnnotationConfiguration]: Constructor threw exception; nested exception is java.lang.ClassCastException: org.hibernate.annotations.common.reflection.java.JavaReflectionManager cannot be cast to org.hibernate.annotations.common.reflection.MetadataProviderInjector
说详细点,新手,哪的注解缺失啊 ,我都注解了啊,用junit测试spring和hibernate成功,加入struts就不行了
追答Error creating bean with name 'userDao': Injection of resource dependencies failed;
userDao,这个Bean无法初始化,导致依赖注入失败。
这句我也读懂了,但是,我不用struts,就能初始化成功,为什么加了struts就不行啊!
追答struts的action是嵌入到spring里面的,action可用有userDao依赖。
追问action 里面我一点东西都没写,主要是启动tomcat都启动不了
追答不一定aciton里要写东西,你不是自己说的,你已经配置Struts了吗,依赖失败都是配置的问题。
追问你给我个具体的解决方法我试试 !
追答你以为我是天师会算啊,我又看不见你具体的配置和项目文件,让我给你给具体解决方法,我怎么给你给?掐指一算,东南方紫气东来?
追问我确定我的spring 的配置没有错。要不单独运行也不会成功,我把我的web.xml和struts.xml发给你:
SSM框架整合时ajax请求返回406
这个问题主要是在面试的时候机试,搭建spring+springmvc+Mybatis时传JSON格式的数据到前台出现的问题,做个笔记方便大家参考:
在浏览器访问时,json报406,说明spring没有处理好对象序列化成json的问题。百度了下需要配置
<mvc:annotation-driven />
但是依然出现406错误
最后的解决方式如下:
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean>
引入三个jackson2.4版本
如下:
jackson-core-2.4.1.jar
jackson-annotations-2.4.1.jar
jackson-databind-2.4.1.jar
问题就解决了,不在报406了,json数据出来了
以上是关于SSH整合时,一直不成功,出现如下错误,错误太多了,不知道怎么改.的主要内容,如果未能解决你的问题,请参考以下文章
SSH框架中hibernate 出现 user is not mapped 问题