java.lang.NumberFormatException 在 db2jcc.jar

java.lang.NumberFormatException in db2jcc.jar

我在 Java 应用程序中遇到了这个异常。我提取了 JAR 文件并尝试检查这是什么根本原因,但我没有得到它,因为我无法对其进行调试。

我有源 JAR 文件,但每次我将它附加到我的工作区时,它仍然显示 "the source attachment does not contain the source for the file ad.class"。

错误堆栈如下:

Caused by: java.lang.NumberFormatException: For input string: "A"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:59)
    at java.lang.Integer.parseInt(Integer.java:460)
    at java.lang.Integer.parseInt(Integer.java:510)
    at com.ibm.db2.jcc.c.ad.<init>(ad.java:80)
    at com.ibm.db2.jcc.b.f.<init>(f.java:55)
    at com.ibm.db2.jcc.b.b.ib(b.java:1760)
    at com.ibm.db2.jcc.c.p.a(p.java:2490)
    at com.ibm.db2.jcc.b.b.a(b.java:470)
    at com.ibm.db2.jcc.b.b.<init>(b.java:264)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163)
    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
    at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:132)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    ... 12 more

我该如何调试它?

"A" 不是数字 您可能试图将字符串值插入到只允许数字的变量或数组中,请确保正确声明了变量和数组。如果您将注意力集中在您正在尝试的错误中,请尝试将字符串值转换为整数。希望你能在我的帮助下解决你的错误度过美好的一天

我认为,问题出在您传递 DBCP 连接池值的地方 - 最小计数、最大计数等。您传递了 "A" 而不是整数。

请检查您提供数据库连接参数的 spring 上下文文件或属性文件。

我找到了解决方案,它的原因是 db2jcc.jar 对于 db2 版本来说太旧了。我在这里找到了解决方案并设法修复它。

https://www-01.ibm.com/support/docview.wss?uid=swg21625290