gpt4 book ai didi

grails - 在 IBM 的 jetty 上启动 Grails 应用程序时出现 "Creation of DB2Driver object failed: CCSID value is not valid"

转载 作者:行者123 更新时间:2023-12-01 19:44:26 31 4
gpt4 key购买 nike

我正在尝试让 Grails Web 应用程序在 IBM AS400 上的 jetty-7.6.3 上运行。当我这样做时,我收到一个错误,可归结为:

Caused by: 
java.sql.SQLException: INTERNAL ERROR: Creation of DB2Driver object for registering with DriverManager failed. -> com.ibm.db2.jdbc.app.DB2JDBCDataException: CCSID value is not valid.
at com.ibm.db2.jdbc.app.DB2ErrorDriver.throwSavedExceptions(DB2ErrorDriver.java:113)
at com.ibm.db2.jdbc.app.DB2ErrorDriver.handleURLProcessing(DB2ErrorDriver.java:296)
at com.ibm.db2.jdbc.app.DB2ErrorDriver.acceptsURL(DB2ErrorDriver.java:149)
at java.sql.DriverManager.getDriver(DriverManager.java:386)
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:224)
at $Proxy16.getMetaData(Unknown Source)
at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:285)
at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:320)
at org.codehaus.groovy.grails.orm.hibernate.support.SpringLobHandlerDetectorFactoryBean.afterPropertiesSet(SpringLobHandlerDetectorFactoryBean.java:72)
...

如果有帮助的话,我可以提供更多的堆栈跟踪。

这是我的数据源:

dataSource{
dbCreate = "update"
pooled = true
url = "jdbc:db2:*local;naming=system;libraries=LIBV;errors=full"
driverClassName = "com.ibm.db2.jdbc.app.DB2Driver"
username = "user"
password = "pass"
dialect = org.hibernate.dialect.DB2400Dialect.class
}

我不知道从哪里开始,也不知道哪个文件有错误的 CCSID。我已经查看了我的网络应用程序的所有文件,它们似乎都很好。有什么建议吗?

最佳答案

我不是 Grails 程序员,但我熟悉 IBM i。 IBM 支持文档 29290926说不允许 CCSID 65535。

相当多的中端机器是在几十年前出售和安装的,当时还没有 CCSID。随着操作系统的发展,引入了 CCSID(编码字符集 ID)的概念。当这种情况发生时,升级到新版本操作系统的人会被分配一个默认的 CCSID:65535。CCSID 65535 实际上表示“我不知道你的文件是如何编码的”。实际上,所有文件都被视为二进制数据,如 JPG 或 EXE 文件。

当时的建议是不允许使用默认值,而是分配一个描述实际编码的 CCSID。我在美国,CCSID 是 37 - 美国英语。有一个称为 QCCSID 的系统值,它将在系统范围内设置此值。另一种方法是更改​​所涉及的用户配置文件。 CHGUSRPRF 用户名 CCSID(37)

关于grails - 在 IBM 的 jetty 上启动 Grails 应用程序时出现 "Creation of DB2Driver object failed: CCSID value is not valid",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15279891/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com