最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決FontConfiguration.getVersion報(bào)空指針異常的問題

 更新時間:2023年06月01日 09:12:40   作者:又菜又愛玩?( ?? ) ?  
這篇文章主要介紹了解決FontConfiguration.getVersion報(bào)空指針異常的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

FontConfiguration.getVersion報(bào)空指針異常

程序中使用到了圖形驗(yàn)證碼的功能,本地測試沒問題,但是在服務(wù)器上就會報(bào)異常。

服務(wù)器中缺少FontConfig,是因?yàn)榉?wù)器用的是OpenJDK, 所以需要手動安裝。

而本地用的則是正式JDK1.8,所以沒有問題。

安裝命令:

yum install fontconfig

JDK引發(fā)的bug(sun.awt.FontConfiguration.getVersion NullPointerException)

背景闡述

項(xiàng)目開發(fā)中有個數(shù)據(jù)導(dǎo)出的功能,采用的是異步隊(duì)列來處理的。

開發(fā)使用的jdk為

在這里插入圖片描述

本地測試完全沒有問題,部署到線上,一直會報(bào)下面日志的錯誤信息。

2020-02-11 07:29:40.575 - INFO 1 ---
                [nio-8080-exec-6] c.c.t.service.impl.TemplateServiceImpl   : >>>開始向【導(dǎo)出數(shù)據(jù)隊(duì)列】投遞消息<<<
2020-02-11 07:29:40.592 - INFO 1 ---
                [nio-8080-exec-6] c.c.t.service.impl.TemplateServiceImpl   : >>>向【導(dǎo)出數(shù)據(jù)隊(duì)列】投遞消息完成<<<
2020-02-11 07:29:40.619 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>成功接收導(dǎo)出數(shù)據(jù)的消息,消息參數(shù)為:{"formId":1219112740443000874,"process":{"creator":1189805389533810109,"deleted":false,"description":"開始處理","editor":1189805389533810109,"id":1227132577916260352,"state":"處理中","tenantId":1197018942024060928},"grantId":1189805389533810109,"processId":1227132577916260352,"tenantId":1197018942024060928,"dataIds":"[\"1224868133840490496\"]"}<<<<<
2020-02-11 07:29:40.619 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>開始解析參數(shù)<<<<<
2020-02-11 07:29:40.620 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>解析參數(shù)結(jié)束<<<<<
2020-02-11 07:29:44.439 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>成功接收導(dǎo)出數(shù)據(jù)的消息,消息參數(shù)為:{"formId":1219112740443000874,"process":{"creator":1189805389533810109,"deleted":false,"description":"開始處理","editor":1189805389533810109,"id":1227132577916260352,"state":"處理中","tenantId":1197018942024060928},"grantId":1189805389533810109,"processId":1227132577916260352,"tenantId":1197018942024060928,"dataIds":"[\"1224868133840490496\"]"}<<<<<
2020-02-11 07:29:44.440 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>開始解析參數(shù)<<<<<
2020-02-11 07:29:44.441 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>解析參數(shù)結(jié)束<<<<<
2020-02-11 07:29:47.553 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>成功接收導(dǎo)出數(shù)據(jù)的消息,消息參數(shù)為:{"formId":1219112740443000874,"process":{"creator":1189805389533810109,"deleted":false,"description":"開始處理","editor":1189805389533810109,"id":1227132577916260352,"state":"處理中","tenantId":1197018942024060928},"grantId":1189805389533810109,"processId":1227132577916260352,"tenantId":1197018942024060928,"dataIds":"[\"1224868133840490496\"]"}<<<<<
2020-02-11 07:29:47.554 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>開始解析參數(shù)<<<<<
2020-02-11 07:29:47.554 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>解析參數(shù)結(jié)束<<<<<
2020-02-11 07:29:50.677 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>成功接收導(dǎo)出數(shù)據(jù)的消息,消息參數(shù)為:{"formId":1219112740443000874,"process":{"creator":1189805389533810109,"deleted":false,"description":"開始處理","editor":1189805389533810109,"id":1227132577916260352,"state":"處理中","tenantId":1197018942024060928},"grantId":1189805389533810109,"processId":1227132577916260352,"tenantId":1197018942024060928,"dataIds":"[\"1224868133840490496\"]"}<<<<<
2020-02-11 07:29:50.678 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>開始解析參數(shù)<<<<<
2020-02-11 07:29:50.678 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>解析參數(shù)結(jié)束<<<<<
2020-02-11 07:29:53.780 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>成功接收導(dǎo)出數(shù)據(jù)的消息,消息參數(shù)為:{"formId":1219112740443000874,"process":{"creator":1189805389533810109,"deleted":false,"description":"開始處理","editor":1189805389533810109,"id":1227132577916260352,"state":"處理中","tenantId":1197018942024060928},"grantId":1189805389533810109,"processId":1227132577916260352,"tenantId":1197018942024060928,"dataIds":"[\"1224868133840490496\"]"}<<<<<
2020-02-11 07:29:53.780 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>開始解析參數(shù)<<<<<
2020-02-11 07:29:53.780 - INFO 1 ---
                [cTaskExecutor-1] c.c.t.rabbitmq.ExportDataReceiver        : >>>>>解析參數(shù)結(jié)束<<<<<
2020-02-11 07:29:53.965 - WARN 1 ---
                [cTaskExecutor-1] o.s.a.r.r.RejectAndDontRequeueRecoverer  : Retries exhausted for message (Body:'[B@7dedff15(byte[753])' MessageProperties [headers={}, contentType=application/x-java-serialized-object, contentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=false, receivedExchange=template_exchange, receivedRoutingKey=topic.template.exportData, deliveryTag=1, consumerTag=amq.ctag-80yarAv96_cA3nDTsNz8Hw, consumerQueue=template_exportData])
org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener method 'public void cn.cncommdata.template.rabbitmq.ExportDataReceiver.process(com.alibaba.fastjson.JSONObject)' threw exception
    at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:196)
    at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:126)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1414)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.actualInvokeListener(AbstractMessageListenerContainer.java:1337)
    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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.retry.interceptor.RetryOperationsInterceptor$1.doWithRetry(RetryOperationsInterceptor.java:91)
    at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:287)
    at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:180)
    at org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:115)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
    at org.springframework.amqp.rabbit.listener.$Proxy156.invokeListener(Unknown Source)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:1324)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:1303)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:817)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:801)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$700(SimpleMessageListenerContainer.java:77)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1042)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException: null
    at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
    at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
    at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
    at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
    at sun.font.SunFontManager$2.run(SunFontManager.java:431)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.font.SunFontManager.<init>(SunFontManager.java:376)
    at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
    at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
    at java.awt.Font.getFont2D(Font.java:491)
    at java.awt.Font.canDisplayUpTo(Font.java:2060)
    at java.awt.font.TextLayout.singleFont(TextLayout.java:470)
    at java.awt.font.TextLayout.<init>(TextLayout.java:531)
    at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:275)
    at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)
    at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:82)
    at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:658)
    at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679)
    at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90)
    at com.alibaba.excel.util.WorkBookUtil.createSheet(WorkBookUtil.java:51)
    at com.alibaba.excel.context.WriteContext.currentSheet(WriteContext.java:112)
    at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:69)
    at com.alibaba.excel.ExcelWriter.write1(ExcelWriter.java:106)
    at cn.cncommdata.template.utils.HeaderUtil.uploadWithData(HeaderUtil.java:311)
    at cn.cncommdata.template.rabbitmq.ExportDataReceiver.handler(ExportDataReceiver.java:131)
    at cn.cncommdata.template.rabbitmq.ExportDataReceiver.process(ExportDataReceiver.java:90)
    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.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:181)
    at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:114)
    at org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.invoke(DelegatingInvocableHandler.java:128)
    at org.springframework.amqp.rabbit.listener.adapter.HandlerAdapter.invoke(HandlerAdapter.java:61)
    at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:188)
    ... 24 common frames omitted
2020-02-11 07:29:53.966 - WARN 1 ---
                [cTaskExecutor-1] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.

問題排查

經(jīng)過測試溝通發(fā)現(xiàn),項(xiàng)目部署人員使用的jdk是openjdk,導(dǎo)致報(bào)上面的問題。

解決方案

將openjdk換為sunjdk。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決問題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources

    解決問題:Failed to execute goal org.apache.m

    這篇文章主要給大家介紹了關(guān)于解決問題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources的相關(guān)資料,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Json在Struts中的轉(zhuǎn)換與傳遞方法

    Json在Struts中的轉(zhuǎn)換與傳遞方法

    下面小編就為大家?guī)硪黄狫son在Struts中的轉(zhuǎn)換與傳遞方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • springboot實(shí)現(xiàn)https雙向傳輸協(xié)議的示例代碼

    springboot實(shí)現(xiàn)https雙向傳輸協(xié)議的示例代碼

    本文主要介紹了springboot實(shí)現(xiàn)https雙向傳輸協(xié)議的示例代碼,包含配置證書和私鑰路徑、調(diào)用請求方法等步驟,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • SpringBoot基于token防止訂單重復(fù)創(chuàng)建

    SpringBoot基于token防止訂單重復(fù)創(chuàng)建

    本文主要介紹了SpringBoot基于token防止訂單重復(fù)創(chuàng)建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • Spring MVC請求參數(shù)的深入解析

    Spring MVC請求參數(shù)的深入解析

    這篇文章主要給大家介紹了關(guān)于Spring MVC請求參數(shù)解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 通過maven配置不同的開發(fā)環(huán)境方式

    通過maven配置不同的開發(fā)環(huán)境方式

    文章介紹了如何使用Maven來控制不同環(huán)境(開發(fā)、測試、生產(chǎn))下的配置文件的加載,具體方法包括在項(xiàng)目目錄下創(chuàng)建特定文件夾存放環(huán)境配置文件,以及在pom文件中添加相關(guān)配置,這樣,可以方便地通過選擇環(huán)境并刷新來啟動項(xiàng)目,提高了配置管理的效率和便捷性
    2025-10-10
  • java開發(fā)環(huán)境的完整搭建過程

    java開發(fā)環(huán)境的完整搭建過程

    這篇文章主要給大家介紹了關(guān)于java開發(fā)環(huán)境的完整搭建過程,文中介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • JavaWeb文件上傳下載實(shí)例講解(酷炫的文件上傳技術(shù))

    JavaWeb文件上傳下載實(shí)例講解(酷炫的文件上傳技術(shù))

    在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳功能是非常常用的功能,今天來主要講講JavaWeb中的文件上傳功能的相關(guān)技術(shù)實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • Spring Boot 編寫Servlet、Filter、Listener、Interceptor的方法

    Spring Boot 編寫Servlet、Filter、Listener、Interceptor的方法

    這篇文章給大家介紹了spring-boot中如何定義過濾器、監(jiān)聽器和攔截器,對Spring Boot 編寫Servlet、Filter、Listener、Interceptor的相關(guān)知識感興趣的朋友一起看看吧
    2017-07-07
  • Mybatis給數(shù)據(jù)庫敏感字段加解密詳解

    Mybatis給數(shù)據(jù)庫敏感字段加解密詳解

    這篇文章主要介紹了Mybatis給數(shù)據(jù)庫敏感字段加解密詳解,為了保護(hù)數(shù)據(jù)庫敏感字段數(shù)據(jù)安全,有時候我們需要將敏感數(shù)據(jù)加密入庫,查詢時再解密成明文,我們可以利用Mybatis自定義TypeHandler來處理,需要的朋友可以參考下
    2023-11-11

最新評論

鱼台县| 城固县| 浦北县| 喜德县| 鹿邑县| 陆河县| 江都市| 丰台区| 黔西县| 隆尧县| 墨玉县| 长沙市| 延长县| 姜堰市| 松原市| 张北县| 水富县| 宁夏| 当涂县| 洪江市| 阳春市| 德化县| 西乡县| 井研县| 车险| 和硕县| 柯坪县| 顺平县| 当阳市| 阳新县| 澳门| 博野县| 阿拉善右旗| 隆昌县| 秦皇岛市| 四子王旗| 姜堰市| 车险| 连山| 拜泉县| 抚顺市|