`
小塔
  • 浏览: 21579 次
  • 性别: 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包很全.rar

    这个"SSH整合jar包很全.rar"文件可能包含了完成SSH整合项目所需的各种库文件,包括Spring、Struts、Hibernate以及它们的依赖,还有可能包括一些示例代码或者配置文件,方便开发者快速搭建和运行SSH项目。使用这个jar...

    整合ssh框架时常遇到的错误

    这通常是由于在配置文件中指定的包路径不正确,或者是MyEclipse的自动编译功能未更新类路径引起的。 **解决方案**: - 确认所有在配置文件中提及的包路径是正确的,且已存在于项目中。 - 清理并重新构建项目,以...

    SSH整合常见错误总结

    **原因分析**:这通常是由于类路径中缺少`jta.jar`文件导致的。 **解决方案**: 1. 添加`jta.jar`到项目的类路径中。 2. 如果使用Maven或Gradle,可以在`pom.xml`或`build.gradle`中添加相应的依赖。 3. 重新构建...

    SSH框架配置步骤

    - **问题**:如果出现“Dialect not found”异常,可能是由于配置文件中dialect设置错误。 - **解决方法**:检查并修正dialect配置。 2. **列名拼写错误**: - **问题**:如果出现数据不能更新的情况,可能是...

    ssh整合文档

    - **异常处理**:在开发过程中遇到的异常要及时排查并解决,比如常见的ClassNotFoundException、NoSuchMethodError等,这些问题通常是由于依赖问题或配置错误引起的。 - **性能优化**:在完成基本的SSH整合后,还...

    java 遇到的各种异常

    ### Java遇到的各种异常 在Java开发过程中,遇到...以上是根据给定的文件内容整理的Java开发过程中可能遇到的一些常见异常及其处理方法。通过了解这些异常的原因并采取适当的措施,可以帮助开发者更高效地解决问题。

    Java常见错误及解决方案

    - **排除不必要的 jar 文件:** 在项目构建路径中排除那些引起冲突的 jar 文件。 - **统一版本管理:** 使用 Maven 或 Gradle 等构建工具来统一管理项目依赖的版本,避免手动引入冲突的 jar 文件。 以上是针对 Java...

    数据插入监控 p6spy

    1. **添加依赖**:首先,你需要将P6Spy的JAR文件(如`p6spy-2.1.0.jar`)添加到项目的类路径中。如果是Maven项目,可以在`pom.xml`中添加对应的依赖条目。 2. **配置代理驱动**:在`jdbc.properties`或类似配置文件...

Global site tag (gtag.js) - Google Analytics