`
小塔
  • 浏览: 21429 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

SSH开发由于Jar文件引起的一些异常

阅读更多

以下曾经学习中遇到的一些异常,尤其是初学者在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.jarcommons-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.jarojdbc14.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_timeout8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有Client请求connectionC3P0将该失效的Connection提供给Client,将会造成上面的异常。
  • 解决的方法有3种:

        增加wait_timeout的时间。

减少Connection poolsconnectionlifetime

测试Connection poolsconnection的有效性。

              当然最好的办法是同时综合使用上述3种方法,下面就DBCPC3P0分别做一说明,假设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包

    在进行SSH开发时,这些jar包是基础,它们共同构成了一个完整的开发环境。开发者还需要配置相应的XML文件,如struts.xml、spring-context.xml和hibernate.cfg.xml,以定义应用的行为和组件。同时,开发者需要理解每个...

    ssh开发核心jar包

    标题“ssh开发核心jar包”指的是这三个框架的核心库文件,这些jar包是SSH框架正常运行的基础。下面将详细介绍SSH框架的核心功能及关键jar包: 1. **Spring框架**: - **Spring核心**:spring-core.jar包含了IoC...

    ssh2开发jar包

    "ssh2开发jar包"是指一组用于Java SSH2开发的库文件,这些jar包包含了实现SSH2功能所需的类和方法。 在Java中使用SSH2开发时,通常会依赖一系列的jar包,包括但不限于以下组件: 1. **JSch**:这是一个Java实现的...

    SSH需要的jar,ssh完整jar

    在Java中,实现SSH功能通常会依赖一些特定的jar文件,这些文件包含了处理SSH连接、身份验证、加密等功能的类和方法。 以下是SSH实现可能需要的一些关键jar文件: 1. **JSch**: 这是一个纯Java实现的SSH2库,提供了...

    SSH整合开发jar包

    SSH整合开发jar包通常包含以下关键组件的jar文件: - Spring框架的核心库:如`spring-context`, `spring-beans`, `spring-aop`, `spring-tx`, `spring-web`, `spring-webmvc`等,它们提供了Spring框架的各种功能。 ...

    sshjar包SSH开发

    在SSH开发环境中,我们还需要其他一些基础的jar包,比如`commons-lang3`、`commons-logging`、`log4j`或者`slf4j`,这些是日志处理和通用工具库。`javassist`用于动态字节码操作,是Hibernate的依赖。`commons-...

    SSH开发jar包.rar

    在"SSH开发jar包.rar"中,包含的jar文件很可能是这三框架的库文件以及其他依赖项,如Servlet API、JSP API等。这些库文件是SSH开发的基础,开发者在项目中引入这些jar包,可以快速搭建SSH环境并进行开发工作。为了...

    SSH可用jar包

    通常,选择兼容的SSH jar包是项目初始化阶段的关键步骤,因为不同版本的SSH组件可能存在兼容性问题,可能导致运行错误或功能异常。 在压缩包子文件的文件名称列表中提到的"SSH环境的搭建配置文件"可能包括以下内容...

    SSH开发所需jar包

    除此之外,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...

    SSH开发依赖jar包完整版

    - 在Java开发中,jar(Java Archive)文件是编译后的类文件和其他资源的集合,便于分发和运行。 - "SSH开发依赖jar包完整版" 提供的是这三个框架及其相关依赖的jar包,开发者可以直接引入到项目中,无需单独下载和...

    SSH框架搭建jar包

    1. 添加SSH框架的jar包:压缩包中的jar文件包含了Struts2、Spring和Hibernate的库,以及它们各自依赖的第三方库。这些jar包需要被添加到项目的类路径中,以便于编译和运行。 2. 配置web.xml:在Web应用的配置文件...

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    ssh框架jar包整合

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大框架。这三大框架分别负责表现层、业务层和持久层的管理,为开发者提供了高效、灵活且可扩展的开发环境。在Java Web项目中,SSH框架的...

    全注解 SSH2 所有jar包 汇总

    由于SSH2涉及到多个组件,如加密算法、会话管理、公钥认证等,因此相关的jar包数量较多,且不同版本之间可能存在兼容性问题。开发者在实际项目中寻找和管理这些jar包时,可能会遇到版本对应、依赖冲突等难题。这个...

    SSH整合所有jar包文件

    在这个压缩包文件中,包含了实现SSH整合所需的全部jar包。 1. Spring框架:Spring是Java企业级应用的核心框架,提供了依赖注入(DI)和面向切面编程(AOP)功能。其核心容器包括BeanFactory和ApplicationContext,...

    ssh.zip_SSH开发jar包_Strut2_ssh_ssh jar_ssh.jar

    SSH开发jar包集合,主要包含了Spring、Struts2和Hibernate这三个流行Java框架的库文件,以及与SSH相关的jar包。这些框架是企业级Java应用程序开发中的基石,它们各自承担着不同的职责,共同构建了一个强大的后端开发...

    SSH开发jar包

    SSH开发jar包是Java开发中的一个经典组合,指的是Struts2、Spring和Hibernate三大框架的集成。这三种框架各自在Web应用开发中扮演着重要的角色,它们的结合为开发者提供了强大的功能,使得企业级应用程序的构建更为...

    最新SSH所需jar包

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这些框架的结合提供了模型-视图-控制器(MVC)设计模式的实现,使得开发者能够更方便地处理业务逻辑...

    ssh框架所有jar包

    SSH框架,全称为Struts2、Hibernate3和Spring3,是Java开发中广泛使用的三大开源框架的组合。它们各自在Web应用的模型-视图-控制器(MVC)架构的不同层面上发挥着关键作用,共同构建出高效、灵活且可扩展的企业级...

    ssh常用Jar包

    SSH(Struts2、Spring、Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。在这个“ssh常用Jar包”中,包含了S2SH框架的关键组件和其他辅助库,比如视频处理和数据库连接相关的...

Global site tag (gtag.js) - Google Analytics