java - 创建 jtds 连接时出错

标签 java sql-server locale jtds

使用 jtds 1.2.5 建立连接时出现此错误:“找不到消息属性 prop.sokeepalive 的消息资源”

起初,我使用的是 1.2.2 版本,但出现此错误消息。 “获取 jdbc 连接时出错:USE 数据库语句失败,因为旧客户端驱动程序无法识别数据库排序规则 Serbian_Latin_100_CI_AS。尝试升级客户端操作系统或对数据库客户端软件应用服务更新,或使用不同的排序规则。请参阅 SQL Server联机丛书以获取有关更改排序规则的更多信息。”

作为解决方案,我尝试使用 1.2.5 版本得到开头提到的错误。

我在 jtds 文档中寻找提示,但我无法解决问题。

有什么想法吗?

提前致谢。

最佳答案

尝试使用 -Duser.language=en -Duser.region=US -Duser.country=US 选项运行客户端 JVM。 这将切换到到处都支持的美国语言环境。

也许这个简单的解决方案适合您的情况。 至少,这会揭示问题是否如我猜想的那样在 jtds 包中缺少当前语言环境的 i18n 消息资源包。

更新

尝试只复制 jtds.jar/net/sourceforge/jtds/jdbc/Messages.properties 并将其添加到类路径中或作为 net/sourceforge/jtds/添加到 jtds.jar 中jdbc/Messages_sr_RS.properties.

一些解释链接:

Message bundle choosing process

net.sourceforge.jtds.jdbc.Messages source

http://www.localeplanet.com/java/sr-RS/

更新 2

无论如何,消息包选择过程应该切换到默认提供的资源。 我的第二个猜测是 jtds 包的 Messages.properties 被一些不相关的同名文件遮住了。 检查您的类路径。

您应该能够调试 net.sourceforge.jtds.jdbc.Messages 以确定发生了什么。

关于java - 创建 jtds 连接时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965740/

相关文章:

sql-server - 使用 EXCEPT 组合数据集与在 LEFT JOIN 中检查 IS NULL

java - 使用 =now() 公式时出现 Apache POI 日期区域设置错误

java - 用于 Spring ApplicationContext 创建的前缀到底如何工作?

c# - 对 EF-to-Linq 查询进行排序的最快方法是什么?

java - 启动 Spring Boot 应用程序时发生 ClassCastException

sql-server - 调用 `Invoke-sqlcmd`时无法加载adalsql.dll错误

c++ - std::codecvt_utf8 方面的问题

c++ - MFC 对话框数据交换 (DDX) 逗号而不是小数点

java - ExecutorService线程很慢

java - 通过java在文本文件中间插入数据