以下曾经学习中遇到的一些异常,尤其是初学者在SSH整合时因为一些Jar文件所引发的异常:
ognl.OgnlException: target is null for setProperty(null, "name", [Ljava.lang.String;@10ade7e)
- 如果出现以上错误,表名在你的Java类中没有name的get,set方法
ognl.NoSuchPropertyException(没有对应属性异常)
ognl.NoSuchPropertyException: com.xie.struts2.tags.modal.Student.sName(没有对应属性异常)
com.opensymphony.xwork2.util.logging.jdk.JdkLogger error
严重: Dispatcher initialization failedUnable to load configuration. - bean - jar:file:/D:/Program%20Files/Tomcat%206.0/webapps/stronger/WEB-INF/lib/struts2-core-2.3.4.jar!/struts-default.xml:51:178
atcom.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
- 如果没有这个Jar文件commons-fileupload-1.2.2.jar会引起以上异常,该文件用于Struts文件上传和下载,struts2.1.6版本后必须加入此文件
com.opensymphony.xwork2.util.logging.jdk.JdkLogger
warn警告: Could not create JarEntryRevision for [jar:file:/D:/Program%20Files/Tomcat%206.0/webapps/stronger/WEB-INF/lib/struts2-core-2.3.4.jar]!java.lang.NoClassDefFoundError:
org/apache/commons/io/FileUtils at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:69)
- 缺少该文件commons-io-2.0.1.jar commons项目(commons项目就是java中一些常用的公共的组件)的io子项目,是处理异常的
com.opensymphony.xwork2.util.logging.jdk.JdkLogger
warn警告: Could not create JarEntryRevision for [jar:file:/D:/Program%20Files/Tomcat%206.0/webapps/stronger/WEB-INF/lib/struts2-core-2.3.4.jar]!
java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils at com.opensymphony.xwork2.util.fs.JarEntryRevision.build(JarEntryRevision.java:69)
- commons-fileupload-1.2.2.jar,commons-io-2.0.1.jar 这两个文件引起的
Exception starting filter struts2java.lang.NoClassDefFoundError:
org/apache/commons/lang3/StringUtils at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:209)
- 可以查看有没有这个文件commons-lang3-3.1.jar 为java.lang包提供扩展
com.opensymphony.xwork2.util.logging.jdk.JdkLogger
error严重: Dispatcher initialization failed Unable to load configuration. - bean - jar:file:/D:/Program%20Files/Tomcat%206.0/webapps/stronger/WEB-INF/lib/struts2-core-2.3.4.jar!/struts-default.xml:57:89 at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) at
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:390)
- freemarker-2.3.19.jar 缺少该文件, 支持freemarker(struts2的UI标签的模板使用FreeMarker编写)的,在webwork中也有
com.opensymphony.xwork2.util.logging.jdk.JdkLogger error严重:
Dispatcher initialization failed java.lang.RuntimeException:
java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301)
- javassist-3.11.0.GA.jar 一个开源的分析、编辑和创建Java字节码的类库(hibernate中也需要,引入其中一个即可)
org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2 java.lang.NoClassDefFoundError: ognl/PropertyAccessor at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.createBootstrapContainer(DefaultConfiguration.java:284) at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:205)
- ognl-3.0.5.jar 支持ognl语言(对象图导航语言(Object Graph Navigation Language))的,struts2框架通过其读写对象的属性,webwork也支持ognl语言
Exception starting filter struts2java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- 如果出现以上错误,可以尝试添加该commons-lang3-3.1.jar
// 用JDBC连接Oracle 10g 遇到的问题
// 数据库升级为Oracle 10g RAC,原有的连接方式下,出现如下错误:
出错信息:- Servlet.service() for servlet jsp threw
exceptionjavax.servlet.jsp.JspException: Unable to get connection, DataSource invalid:
“org.apache.commons.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)
(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))))”at
org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:276)at
org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
或者出现以下错误:
An error occurred while establishing the connection:Type: java.sql.SQLException Error Code: 17002Message:
Io异常:Connection refused(DESCRIPTION=(ERR=1153)(VSNNUM=169869568)
(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS=’(ADDRESS=(PROTOCOL=TCP)(HOST=RAC02)(PORT=1521))’))(ERROR=(CODE=305)(EMFI=1))))
- 可以尝试将Oracle驱动替换为10g的ojdbc14.jar;ojdbc14.jar 适用于 JDK 1.4 and 5.0ojdbc6.jar:支持JDK6,支持JDBC 4.0,新的java.sql.SQLXML类型没有被支持;ojdbc5.jar:全面支持使用JDK5 和 JDBC 3.0
Hibernate使用C3P0的连接池,数据库为Mysql。开发测试没有问题,在运行中每个一段长的空闲时间就出现异常:
org.hibernate.exception.JDBCConnectionException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
.......
Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:
** BEGIN NESTED EXCEPTION **
com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Broken pipe
STACKTRACE:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
......
** END NESTED EXCEPTION **
- Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。
- 解决的方法有3种:
1 增加wait_timeout的时间。
2 减少Connection pools中connection的lifetime。
3 测试Connection pools中connection的有效性。
当然最好的办法是同时综合使用上述3种方法,下面就DBCP和C3P0分别做一说明,假设wait_timeout为默认的8小时
DBCP增加以下配置信息:
//set to 'SELECT 1'
validationQuery = "SELECT 1"
//set to 'true'
testWhileIdle = "true"
//some positive integer
timeBetweenEvictionRunsMillis = 3600000
//set to something smaller than 'wait_timeout'
minEvictableIdleTimeMillis = 18000000
//if you don't mind a hit for every getConnection(), set to "true"
testOnBorrow = "true"
C3P0增加以下配置信息:
//获取connnection时测试是否有效
testConnectionOnCheckin = true
//自动测试的table名称
automaticTestTable=C3P0TestTable
//set to something much less than wait_timeout, prevents connections from going stale
idleConnectionTestPeriod = 18000
//set to something slightly less than wait_timeout, preventing 'stale' connections from being handed out
maxIdleTime = 25000
//if you can take the performance 'hit', set to "true"
testConnectionOnCheckout = true
分享到:
相关推荐
在进行SSH开发时,这些jar包是基础,它们共同构成了一个完整的开发环境。开发者还需要配置相应的XML文件,如struts.xml、spring-context.xml和hibernate.cfg.xml,以定义应用的行为和组件。同时,开发者需要理解每个...
标题“ssh开发核心jar包”指的是这三个框架的核心库文件,这些jar包是SSH框架正常运行的基础。下面将详细介绍SSH框架的核心功能及关键jar包: 1. **Spring框架**: - **Spring核心**:spring-core.jar包含了IoC...
"ssh2开发jar包"是指一组用于Java SSH2开发的库文件,这些jar包包含了实现SSH2功能所需的类和方法。 在Java中使用SSH2开发时,通常会依赖一系列的jar包,包括但不限于以下组件: 1. **JSch**:这是一个Java实现的...
在Java中,实现SSH功能通常会依赖一些特定的jar文件,这些文件包含了处理SSH连接、身份验证、加密等功能的类和方法。 以下是SSH实现可能需要的一些关键jar文件: 1. **JSch**: 这是一个纯Java实现的SSH2库,提供了...
SSH整合开发jar包通常包含以下关键组件的jar文件: - Spring框架的核心库:如`spring-context`, `spring-beans`, `spring-aop`, `spring-tx`, `spring-web`, `spring-webmvc`等,它们提供了Spring框架的各种功能。 ...
在SSH开发环境中,我们还需要其他一些基础的jar包,比如`commons-lang3`、`commons-logging`、`log4j`或者`slf4j`,这些是日志处理和通用工具库。`javassist`用于动态字节码操作,是Hibernate的依赖。`commons-...
在"SSH开发jar包.rar"中,包含的jar文件很可能是这三框架的库文件以及其他依赖项,如Servlet API、JSP API等。这些库文件是SSH开发的基础,开发者在项目中引入这些jar包,可以快速搭建SSH环境并进行开发工作。为了...
通常,选择兼容的SSH jar包是项目初始化阶段的关键步骤,因为不同版本的SSH组件可能存在兼容性问题,可能导致运行错误或功能异常。 在压缩包子文件的文件名称列表中提到的"SSH环境的搭建配置文件"可能包括以下内容...
除此之外,SSH开发还需要一些通用的jar包: 1. `commons-lang3-x.x.x.jar`、`commons-logging-x.x.x.jar`:Apache Commons库,提供了一些常用的工具类和日志接口。 2. `slf4j-api-x.x.x.jar`、`slf4j-log4j12-x.x.x...
- 在Java开发中,jar(Java Archive)文件是编译后的类文件和其他资源的集合,便于分发和运行。 - "SSH开发依赖jar包完整版" 提供的是这三个框架及其相关依赖的jar包,开发者可以直接引入到项目中,无需单独下载和...
1. 添加SSH框架的jar包:压缩包中的jar文件包含了Struts2、Spring和Hibernate的库,以及它们各自依赖的第三方库。这些jar包需要被添加到项目的类路径中,以便于编译和运行。 2. 配置web.xml:在Web应用的配置文件...
SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大框架。这三大框架分别负责表现层、业务层和持久层的管理,为开发者提供了高效、灵活且可扩展的开发环境。在Java Web项目中,SSH框架的...
由于SSH2涉及到多个组件,如加密算法、会话管理、公钥认证等,因此相关的jar包数量较多,且不同版本之间可能存在兼容性问题。开发者在实际项目中寻找和管理这些jar包时,可能会遇到版本对应、依赖冲突等难题。这个...
在这个压缩包文件中,包含了实现SSH整合所需的全部jar包。 1. Spring框架:Spring是Java企业级应用的核心框架,提供了依赖注入(DI)和面向切面编程(AOP)功能。其核心容器包括BeanFactory和ApplicationContext,...
SSH开发jar包集合,主要包含了Spring、Struts2和Hibernate这三个流行Java框架的库文件,以及与SSH相关的jar包。这些框架是企业级Java应用程序开发中的基石,它们各自承担着不同的职责,共同构建了一个强大的后端开发...
SSH开发jar包是Java开发中的一个经典组合,指的是Struts2、Spring和Hibernate三大框架的集成。这三种框架各自在Web应用开发中扮演着重要的角色,它们的结合为开发者提供了强大的功能,使得企业级应用程序的构建更为...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这些框架的结合提供了模型-视图-控制器(MVC)设计模式的实现,使得开发者能够更方便地处理业务逻辑...
SSH框架,全称为Struts2、Hibernate3和Spring3,是Java开发中广泛使用的三大开源框架的组合。它们各自在Web应用的模型-视图-控制器(MVC)架构的不同层面上发挥着关键作用,共同构建出高效、灵活且可扩展的企业级...
SSH(Struts2、Spring、Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。在这个“ssh常用Jar包”中,包含了S2SH框架的关键组件和其他辅助库,比如视频处理和数据库连接相关的...