遇见的异常以及其解决方法整理

(2016-10-25 15:27:19)
1、java.sql.SQLException: No suitable driver
解决方法:
standard.jar的作用时,知道这个jar包与jstl.jar一起使用,但是jstl 1.2版本的就不需要这个jar包了,而本人使用的正是jstl 1.2.jar这个jar包,去掉standard.jar文件后重启tomcat就不会再出现上述信息。



(2016年10月25日11:39:38)

2、nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool这个异常的原因可能是:
原因是工具myEclipse在建立SessionFactory的时候,少加一个包 commons-pool.jar 补上去问题解决。


(2017年4月25日14:53:58)
3、今天我将一个项目从另一台机器拷到这台机器,又重新安装了JDK1.6(这台机器上原先的JDK是1.5的),并配置好了JDK环境后,我将整个项
目部署好之后,在每个JSP页面中的"request.getContextPath()"下方出现了红色的波浪线,提示的错误信息是“The method 
getContextPath() from the type HttpServletRequest refers to the missing type String”,
    此时,我们只需这样:
    1 右击该项目 - Build Path - Configure Build Path , 在 Libraries 选项下,会发现有个出错的jre Libraries,将其Remove掉。
    2 然后右击该项目 - Build Path - Add Library, 选择JRE System Library,选择Workspace defaulr JRE(jdk1.6)(此前JDK已成功安
装并配置好), 然后 Finish 。

    这样,JSP页面中的错误提示就消失了。


(2017年4月25日15:04:55)
4、java.lang.IllegalStateException异常
同一个页面中的response.XXX()是同一个response的不同方法,只要其中一个已经导致了committed,那么其它类似方式的调用都会导致 IllegalStateException异常
常见解决办法: ①在response.sendRedirect()方法后加return语句即可,如下:
                       response.sendRedirect("login.jsp");
                       return;
                 ②检查提交的url是否有误。
                 ③如果你的页面中用了清缓存代码response.flushbuffer();又用到了response.sendRedirect(url);
                     你可以把response.flushbuffer();去掉,或者用JS的window.location.href="url";来做转向。
摘自:点击打开链接


(2017年4月26日14:10:26)
5、异常java.lang.NoClassDefFoundError: org/springframework/util/Assert
有可能是没有导入spring的核心jar包spring-core-3.0.7.RELEASE.jar



6、异常
com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error(CommonsLogger.java:38)   Dispatcher initialization failed
com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
这是我在配置struts2的struts.xml的路径时,没有加struts-default.xml,struts-plugin.xml,完整的应该这样写:
<init-param>
  <param-name>config </param-name>
  <param-value>struts-default.xml,struts-plugin.xml,config/struts.xml</param-value>
  </init-param> 
7、异常
java.lang.ClassNotFoundException: org.apache.commons.lang.xwork.StringUtils(这类问题是说没有找到某个jar包的异常)


8、
net.sf.json.JSONObject这个工具类在使用jsonobject.fromobject(),json转对象时对象object为null会报错,
这个有两种解决办法:1、使用JSONObject时,确保对象或Json串中没有空的数据
    2、建议使用 google的 Gson.jar 工具,这个可以有效的避免这个问题的出现


9、异常:
Unable to load configuration. - bean - jar:file:/D:/Tomcat%206.0/webapps/controllertest/WEB-INF/lib/struts2-core-2.3.4.1.jar!/struts-default.xml:32:127
Unable to load bean: type:com.opensymphony.xwork2.FileManager class:com.opensymphony.xwork2.util.fs.DefaultFileManager - bean - jar:file:/D:/Tomcat%206.0/webapps/controllertest/WEB-INF/lib/struts2-core-2.3.4.1.jar!/struts-default.xml:32:127
java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.fs.DefaultFileManager
(我遇到的这个异常是使用struts2的时候,xwork-core.jar的版本没有对,当时使用的几个关键的jar包的版本是:
struts2-core-2.3.4.1.jar,struts2-json-2.3.4.1.jar,xwork-core-2.3.4.1.jar)


(2017年5月12日16:26:37)

10、异常在使用hibernate的时候抛出异常:java.lang.reflect.InvocationTargetException
可能原因是:
Java通过jdbc连接sqlserver和Oracle时出现这个异常。


虽然抛出这个异常,但对整个应用没有影响。这个异常产生的原因是jar包的版本不对。连接oracle10g的jdbc用ojdbc6.jar(1942k),连接sqlserver2008用sqljdbc.jar(570k),而不用sqljdbc4.jar(567k)


(2017年5月15日16:13:19)

11、异常:java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter
网上找了一下原因:说是这个方法应该是Spring 3.2.0才加入的,看看你的Spring版本是不是低了。你得检查一下你的classpath下是不是还有其他低版本的Spring-core的jar包。(总的来说就是spring-core的jar包版本低了,有多个spring-core.jar的版本冲突)


(2017年5月15日16:30:05)
12、异常:nested exception is java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
原因是因为:缺少aopalliance-1.0.jar 包


(2017年5月15日16:37:33)
13、异常:nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
原因是缺少:aspectjweaver.jar包




(2017年7月6日15:30:54)
14、异常:Cannot retrieve mapping for action: ......
是因为:总的来说,问题的原因就在于,struts是在第一次收到对action 的请求(注意:不包括jsp的请求)时,提取这个请求的url的路径信息,把相应模块的mapping 信息设置到请求中去 。 如果在进入一个模块时,第一次访问的是一个jsp页面,而在这个jsp页面中提交到该模块的一个action ,就会出现找不到action mapping 的情况。这就是因为,在进到这个模块时,访问的是jsp,这个模块的任何一个action 都没有被访问到,所以struts的ActionServlet还没有来得及把这个模块的mapping 设置到请求中,自然找不到该模块的action 。
        因此,这就引出一个约定,就是系统中尽量避免对Jsp的直接访问,如果要访问也要通过action 来forward 。 虽然看起来麻烦一点,但是安全性、健壮性都会有所提高。

(后续补充ing...)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值