struts2 spring hibernate整合常见问题集
1、出现class not fond:org.t.ContextLoaderListener
解决方法:加入完整的spring.jar
2、出现struts2 :Unable to load configuration. ……l异常(有两种情况)
解决方法:
2.1 除了ognl-2.6.11.jar,struts2-core-2.1.6.jar,xwork-2.1.2.jar,commons-logging-1.0.4.jar外,
还需要添加freemarker-2.3.13.jar,commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar
2.2 l中action配置出错,检查,可能<package name="" extends="struts-default">中未写
extends="struts-default"
3、nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)错误
解决方法:
将spring提供的asm-2.2.3.ja架文件删除重新启动服务器就能可以了
4、出现:HTTP Status 404 - No result defined for action com.sr.login.LoginAction and result error
解决方法:
log4j2 xml配置
5、出现:failed to lazily initialize a collection of role: XXXXXX
解决方法:在l中加入以下配置:
<filter>
<filter-name>hibernateFilter</filter -name>
<filter-class>
hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
OpenSessionInViewFilter
ActionContextCleanUp
FilterDispatcher
注意:有些时候会出现一些页面或者一些其他的action过滤不到,可以修改如下:
<url-pattern>/*</url-pattern>
6、Write operations are not allowed in read-only
解决方法:在l中配置
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
中加入
<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>
7、Field 'id' doesn't have a default value
解决方法一:
打开my.ini,把sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
修改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
然后重启MYSQL
解决方法二:
在MySQL Instance Config Wizard中Enable Strict Mode的勾去掉
MySQL会自动重启
如若不行:检查id是否设为int型,且是自增长型
如若还不行,那就把主键类型设为assigned吧,id自己想怎么定就怎么定
8、ERROR - Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
MESSAGE: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
解决方法:修改连
接设置:
url="jdbc:mysql://localhost:3306/rsgz?UseUnicode=true;characterEncoding=GB2312;autoReconnect=true"/>
后边加上autoReconnect=true
9、 Pointcut is not well-formed: expecting 'name pattern' at character position 34
execution(com.sr.service.*.*(..))
解决方法:com.sr.service.*.*(..)前加点,并且要加一空格
10、no matching editors or conversion strategy found
解决方法:是在AOP配置时出的问量,设置aop代理类,在<aop:config>中加入proxy-target-class="true",如下
<aop:config proxy-target-class="true">
<aop:pointcut id="allManagerMethod" expression="execution(* com.sr.serviceimpl.*.*(..)))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>
11、Exception starting filter struts2
at com.opensymphony.xwork2.util.FileManage
解决方法:有两种情况:1是struts2包不全,把包重新加一遍,2是把struts2配置文件里的struts.devMode=true去掉,或者改成struts.devMode=false
12、This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]
解决方法:错误配置如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
把其中的*.action改成/*
13、java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
解决方法:加入包slf4j-api-1.5.0.jar,slf4j-log4j12-1.5.0.jar,log4j-1.2.15.jar
14、struts2 action中的execute方法只执行一次
解决方法:
spring 的配置文件里的bean 默认是单例模式(Singleton)的, 所以只加载一次
将action 的bean配置加一个属性scope="prototype"
15、hibernate3.HibernateSystemException: Unknown entity: ItemData
有三个原因:
A:在l中没有配置class的全路径,如应该是company.project.pojo.ItemData
B:在spring的l文件sessionFactory中的mappingResources属性中没有加l,或者加的路径出错
C:或者是spring的asm包和hibernate的冲突,去掉spring的asm包
D:如果以上方法还都不行在dao的方法中加入ItemData的全路径如下
ItemData instance =(ItemData) getHibernateTemplate()
.get("com.rh.phm.dao.ItemData", id);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论