java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK_是夏天呀!的博客-程序员宅基地

技术标签: Java  

java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

使用ssm框架搭建的项目,在查询时,抛出以下异常:

2019-11-19 11:35:26.106 [http-nio-18080-exec-1] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column 'DEPTNO' from result set.  Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
; uncategorized SQLException; SQL state [99999]; error code [17056]; 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK; nested exception is java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK] with root cause
java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
	at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:233)
	at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:194)
	at oracle.jdbc.driver.PhysicalConnection.throughDbCharset(PhysicalConnection.java:10365)
	at oracle.jdbc.driver.PhysicalConnection.enquoteIdentifier(PhysicalConnection.java:10442)
	at oracle.jdbc.driver.OracleStatement.enquoteIdentifier(OracleStatement.java:6452)
	at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3853)
	at oracle.jdbc.driver.InsensitiveScrollableResultSet.findColumn(InsensitiveScrollableResultSet.java:270)
	at oracle.jdbc.driver.GeneratedResultSet.getBigDecimal(GeneratedResultSet.java:512)
	at com.zaxxer.hikari.pool.HikariProxyResultSet.getBigDecimal(HikariProxyResultSet.java)
	at org.apache.ibatis.type.BigDecimalTypeHandler.getNullableResult(BigDecimalTypeHandler.java:38)
	at org.apache.ibatis.type.BigDecimalTypeHandler.getNullableResult(BigDecimalTypeHandler.java:27)
	at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:81)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyAutomaticMappings(DefaultResultSetHandler.java:521)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:402)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:354)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:328)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:301)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:194)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
	at com.sun.proxy.$Proxy61.selectOne(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:87)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:93)
	at com.sun.proxy.$Proxy62.getDept(Unknown Source)
	at com.example.ssmDemo.service.impl.DeptServiceImpl.getDeptByDName(DeptServiceImpl.java:20)
	at com.example.ssmDemo.controller.DeptController.getDept(DeptController.java:26)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

Process finished with exit code -1

解决方案:根据报错信息提示,导入orai18n.jar或者在pom.xml中添加orai18n.jar的依赖

		<!-- 用于解决: uncategorized SQLException; SQL state [99999]; error code [17056]; 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK; nested exception is java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK] with root cause
				java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK -->
		<!-- https://mvnrepository.com/artifact/com.oracle/orai18n -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>orai18n</artifactId>
			<version>11.2.0.3</version>
		</dependency>

结果:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40555277/article/details/103139648

智能推荐

教程中的图片这几天可能访问不了。海洋大哥的服务器给人家黑了,所以图片都访问不了。..._weixin_30595035的博客-程序员宅基地

非常抱歉,这几天教程中的图片可能访问不了。海洋大哥的服务器给人家黑了,所以图片都访问不了。我会尽快开通我自己的博客网站www.eallies.com,并提供可用的截图的。在这里强烈谴责那些做坏事的黑客们!!(黑日本、美国的不在谴责之列。)转载于:https://www.cnblogs.com/Eallies/archive/2006/09/30/519351.html...

Spring5文档翻译(一)-Spring入门和简介_weixin_34138377的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

Linux下Memcache服务器端的安装教程_iteye_20727的博客-程序员宅基地

服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经...

Quick BI v3.0版本全新起航——2018杭州云栖大会_阿里云云栖号的博客-程序员宅基地

在9月22日杭州云栖大会云上数据中台专场中,阿里巴巴产品专家陌停跟现场的观众们分享了Quick BI v3.0版本的新体验、新分析和新功能。作为一个高效数据分析与展现的BI套件,Quick BI通过拖拽式的可视化分析能力,让懂业务的人自助式实现数据分析,重塑数据生产全链路,最终实现人人都是数据分析师的愿景。在Quick BI面向企业赋能过程中,发现困扰一个企业业务数字化转型的...

java collection 创建_java中的Collection – toArray()方法_朱炫的博客-程序员宅基地

There is no E[] toArray() method. Why?在执行时它无法实际创建E [],因为由于类型擦除它不会知道要创建的数组的类型.add方法实际上会接受任何东西,但编译器只是先检查参数类型是否与E兼容.在执行时不需要知道任何事情.同样,对于像List.get这样的东西,编译器会将一个强制转换插入到调用代码中:List strings = new ArrayList&lt;&...

大数据_云计算面试精华汇总_MH_G的博客-程序员宅基地

文章目录1. 云计算的本质特征及其与分布式计算或并行计算的关系2. 云计算技术体系结构分为哪几层?3. 云计算三种服务类型(IaaS,PaaS和SaaS)4. RPC执行的主要步骤。5. RPC技术中存根(Stub)的作用。6. RMI分布式应用程序基本构成。7. 比较裸金属虚拟化、主机虚拟化和操作系统虚拟。8. 分布式系统中数据分片与数据副本的作用。9. 什么是分布式系统中的副本一致性问题?什么是分布式共识问题?两者之间有什么关系?10. 副本控制采用强同步复制协议和异步复制协议时的数据读写流程。11.

随便推点

Git + 码云 使用流程_风吹走了我脑壳后面的秀发的博客-程序员宅基地

去官网下载git,下载过后安装一直下一步到安装完成为止即可。去码云官网注册账号准备一个文件夹用来做测试右键选择GIT BUSH HERE,生成本地密钥ssh-keygen -t rsa -C “[email protected]”在本地就会有两个文件,一个是公钥,一个是私钥输入 cat ~/.ssh/id_rsa.pub 查看自己的密钥将密钥添加到码云上去在码云上添加项目在gi...

Laravel5.2学习笔记---Controller介绍_书旅LY的博客-程序员宅基地

一、Controller之Request 在之前的使用中,其实每次访问都是一个请求(request),请求之后返回到浏览器的都是一个响应(response)。 Laravel中的请求使用的是symfony/http-foundation组件。 请求里边存放了$_GET、$_POST、$_COOKIE、$_FILES、$_SERVER等数据以下需要引入的命名空间有:use Illu...

active控件和java脚本_【学习笔记】在原生javascript中使用ActiveX和插件_爱吃葡萄的小狐狸的博客-程序员宅基地

什么是插件现在的浏览器提供了大量的内置功能,但仍然有一些工作无法完成,如播放音频和视频。插件及其扩展浏览器功能就尤为重要。插件是可下载的应用程序,可以插入到浏览器中,现在有很多不同的插件,常用的有Adobe Flash Palyer ,Microsoft的Silverlinght和Apple的QuickTme播发器。插件是封装了完成某项工作(播放音频文件)所需的所有功能的对象,对网站作者隐藏了复...

Keras中深度学习模型搭建探讨_会思考de苇草的博客-程序员宅基地

Keras中深度学习模型搭建探讨前言LSTM模型LSTM模型的输入LSTM模型的输出多层LSTMConv1D模型Conv1D模型的输入Conv1D模型的输出输入输出尺寸的理解Conv2DConv2D模型的输入Conv2D模型的输出汇总ConvLSTMConvLSTM输入ConvLSTM输出前言这篇博客是自己学习的一个小节,也希望能给你带来帮助。了解深度学习有一段时间了,做过CNN、LSTM、CNN-LSTM、ConvLSTM等模型,对单个模型的创建和结构加深有了一定认识,但想要创建混合模型或者其他更

python如何不跳行打印_python怎么不换行打印_weixin_39611413的博客-程序员宅基地

Python2.7中,执行完print后,会自动换行,如下代码会打印:abc\n123\n(其中\n代表换行)print ('abc')print ('123')如何实现不换行打印字符呢,下面介绍Python2.7中 实现不换行打印字符的3种简单方法:1.在print函数后加一个逗号,打印效果如同用空格代替了换行,如下代码会打印:abc123(其中代表空格)print ('abc'),pri...

windows各种_weixin_34198881的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...