-
Jackson整理
```com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:Unrecognizedfield"test"(classcom.acgist.api.request.pay.PayRequest),notmarkedasignorable(3knownproperties:"orderId","requestTime","sign"])at[Source:(String)"{"test":"test","orderId":"orderId","sign":"sign","queryId":"queryId"}";line:1,column:10](throughreferencechain:com.acgist.api.request.pay.PayRequest["test"])atcom.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:60)atcom.fasterxml.jack...
JSON Jackson -
fastdfs异常
安装方法:[https://github.com/happyfish100/fastdfs/wiki](https://github.com/happyfish100/fastdfs/wiki)`storage.conf`配置的`tracker_server`配置项不能是`127.0.0.1:22122`,而应该用`localhost:22122`,不然会提示:```[2018-09-2017:18:15]ERROR-file:storage_func.c,line:1194,conffile"/etc/fdfs/storage.conf",tracker:"127.0.0.1:22122"isinvalid,trackerserveripcan'tbe127.0.0.1[2018-09-2017:18:15]CRIT-exitabnormally!```启动命令:```bash#必须是下面命令/etc/init.d/fdfs_trackerdstart/etc/init.d/fdfs_storagedstart#不能是fdfs_trackerdstartfdfs_storagedstart```
fdfs fastdfs -
ELK环境搭建
ELK用来干什么我就不介绍了,主要说一下环境搭建。其实环境搭建非常简单,去官网下载的页面均有搭建步骤。elasticsearch:[https://www.elastic.co/cn/downloads/elasticsearch](https://www.elastic.co/cn/downloads/elasticsearch)logstash:[https://www.elastic.co/cn/downloads/logstash](https://www.elastic.co/cn/downloads/logstash)kibana:[https://www.elastic.co/cn/downloads/kibana](https://www.elastic.co/cn/downloads/kibana)环境:Windows系统、软件版本`6.4.1`、Java10。##elasticsearch下载、解压运行:`bin\elasticsearch.bat`访问:`http://localhost:9200/`##logstash下载、解压配置文件logstash.conf:```input{st...
ELK 日志处理 -
logstash异常
```UnrecognizedVMoption'UseParNewGC'Error:CouldnotcreatetheJavaVirtualMachine.Error:Afatalexceptionhasoccurred.Programwillexit.```logstash的版本`6.4.1`,修改`config/jvm.options`,注释掉`-XX:+UseParNewGC`这个配置即可。还有Windows系统配置`input-file`时发现并没有将文件内容发送到`es`,原来是`path`配置的问题:```#下面两种无效D:\elk\logs\*D:\\elk\\logs\\*#下面配置有效D:/elk/logs/*```
logstash ELK -
JDK内置HTTPClient工具问题
最新的Java9内置了一个HTTPClient的工具,挺好用的。但是最近发现了一个问题,就是不能设置`User-Agent`请求头。设置了没有效果,至少我现在用的Java10是没有效果的,`Content-type`请求头设置了是有效果的。蒙圈中😕看了一下源代码,这个`header`是不能自定义的:```privatestaticfinalSetDISALLOWED_HEADERS_SET=Set.of("authorization","connection","cookie","content-length","date","expect","from","host","origin","proxy-authorization","referer","user-agent","upgrade","via","warning");publicstaticfinalPredicateALLOWED_HEADERS=header->!Utils.DISALLOWED_HEADERS_SET.contains(header);```然后我仔细再看了一遍,这个判断是区分大小写的,所以大写的`User-Agen...
JDK incubator HttpClient -
XML数字节点导致的异常
如果XML节点是数字或数字开头,那么JDOM添加节点会提示:```Thename"1te"isnotlegalforJDOM/XMLelements:XMLnamescannotbeginwiththecharacter"1".```JDOM使用xPath读取时提示:```org.jdom.JDOMException:InvalidXPathexpression:"xml/12test":Expectedoneof'.','..','@','*',```然而DOM4J添加节点和生成XML文档不会存在问题,但是读取时提示:```org.dom4j.DocumentException:Erroronline6ofdocument:元素内容必须由格式正确的字符数据或标记组成。Nestedexception:元素内容必须由格式正确的字符数据或标记组成。atorg.dom4j.io.SAXReader.read(SAXReader.java:482)atcom.acgist.xml.XmlUtils.loadContent(XmlUtils.java:72)atcom.acgist.xml.XmlUtils.main(...
XML JDOM DOM4J -
transient关键字学习
`transient`根据这个单词的意思就知道它修饰的变量是瞬时的,也就是说不会被序列化。比如Dubbo服务里面,用这个变量修饰的变量,在服务调用端获取不到这个变量的值。可以防止一些比较敏感或者一些不需要对外输出的数据被序列化。但是这个对JSON输出时没有效果的。主要是配合`Serializable`接口一起使用,实现自动序列化。我们也可以使用`Externalizable`来自定义那些字段需要序列化。>更多学习参考:[http://www.importnew.com/21517.html](http://www.importnew.com/21517.html)
transient Java -
腾讯企业邮箱发送邮件失败
一直使用的腾讯企业邮箱,但是最近发现发送邮件全是失败的,提示:```javax.mail.MessagingException:CouldnotconnecttoSMTPhost:smtp.exmail.qq.com,port:25;nestedexceptionis:java.net.ConnectException:连接超时(Connectiontimedout)atcom.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)atcom.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)atjavax.mail.Service.connect(Service.java:317)atjavax.mail.Service.connect(Service.java:176)atjavax.mail.Service.connect(Service.java:125)atjavax.mail.Transport.send0(Transport.java:194...
腾讯邮箱 Java -
Oracle登陆时提示ORA-00257错误
今天登陆Oracle时提示:`ORA-00257:archivererror.Connectinternalonly,untilfreed`。网上查了一下,是`archivelog`日志存满了导致的。我们可以使用以下步骤来修复:```--登陆sqlplussqlplussysassysdba--查看日志状态:第三条语句可以看到ARCHIVEDLOG的占用比例showparameterlog_archive_dest;archiveloglist;select*fromV$FLASH_RECOVERY_AREA_USAGE;--查找日志的目录的配置大小:/home/data/oracle/flash_recovery_areashowparameterrecover;--日志目录:cd/home/data/oracle/flash_recovery_area/TEST/archivelog/```删除日志文件使用`rman`:```--进入rman:connectedtotargetdatabase:TEST(DBID=2277543455)rmantarget/--检查无用的日志crosscheckarchi...
Oracle ORA-00257 archivelog -
Oracle连接时提示ORA-28547错误
今天连接之前安装的Oracle提示`ORA-28547:connectiontoserverfailed,probableOracleNetadminerror`。我的客户端使用的是`NavicatPremium`。原来是`oci.dll`文件错了,这个文件就相当于一个驱动。从Oracle官网重新下载一个就配置好就没问题了。Windows(x64)下载地址:[http://www.oracle.com/technetwork/topics/winx64soft-089540.html](http://www.oracle.com/technetwork/topics/winx64soft-089540.html)其他版本下载地址:[http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html](http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/...
Oracle Navicat ORA-28547 -
Nginx配置HTTPS域名跳转到www开头域名
常见的是把80端口(HTTP)跳转到443端口(HTTPS),但是最近想把`acgist.com`域名重定向到`www.acgist.com`上面,如下配置:```server{listen80;#listen443ssl;server_nameacgist.com;return301https://www.acgist.com$request_uri;}server{listen80;server_namewww.acgist.com;return301https://$host$request_uri;}server{listen443ssl;server_namewww.acgist.com;#其他配置}```上面的代码跳转前两个成功,后面的失败:```#成功http://acgist.com->https://www.acgist.comhttp://www.acgist.com->https://www.acgist.com#失败https://acgist.com->https://www.acgist.com```如果把上面注释打开,直接都访问不了,提示:```无法访问此网站w...
Nginx -
手机微信自动跳转到默认浏览器
有时候我们需要手机微信的链接点开自动跳转到手机默认浏览器上面,有的是使用一个遮罩层提示用户手动操作。下面介绍一个实现方法,不过这个方法只能使用安卓手机,苹果手机没有效果。先说一下步骤:*如果点击链接时判断是否是微信客户端,如果是添加以下两个响应头:```Content-Type="text/plain;charset=utf-8";Content-Disposition="attachment;filename=open.apk";```*然后返回状态码`206`就可以了,这样微信客户端就会自动跳转到默认浏览器了。非微信客户端不用处理,就可以正常浏览了。具体实现方法很简单,如果是使用Nginx,添加一下配置:```if($http_user_agent~*(MQQBrowser)){add_headerContent-Type"text/plain;charset=utf-8";add_headerContent-Disposition"attachment;filename=open.apk";return206;}```Java代码实现:```java@RequestMapping("/open")pub...
微信 -
使用deeplearning4j实现手写数字识别
项目地址:[https://gitee.com/acgist/demo/tree/master/aimldl/number-ocr](https://gitee.com/acgist/demo/tree/master/aimldl/number-ocr)项目使用的是`deeplearning4j`,训练数据使用的是`mnist`。首先识别效果:`0123458`识别度非常高,`679`这三个数字出错率比较高。效果如下:模型训练的结果:然后是手写的图片处理,使用的是`jSignature`这个JS插件,生成的是PNG的图片,没有背景色,所以第一步就是添加背景色。然后图片二值化和反色,因为`mnist`的图片是黑色背景白色字。最后把图片缩小成`28px`...
deeplearning4j mnist ocr 数字识别 cnn -
Java实现环形矩阵生成
环形矩阵如下:已经用箭头标记了生成的规律,从`1`到`25`,箭头的数量是`5、4、4、3、3、2、2、1、1`。矩阵可以看作x和y轴,坐标变换规律:`x+`、`y+`、`x-`、`y-`的重复。所以代码如下:```javaimportjava.util.concurrent.atomic.AtomicInteger;/***环形矩阵*/publicclassDoubleMatrix{publicstaticfinalvoidmatrix(intnum){//设置矩阵//int[][]matrix=newint[num][num];String[][]matrixProcess=newString[num][num];//数组index:num->2*(num-1)->2*(1):2n次//矩阵index:x+1->y+1->x-1->y-1;AtomicIntegervalue=newAtomicInteger(0)...
Java 环形矩阵 -
Eclipse提示xtext错误
今天Eclipse在css文件里面提示:```DescriptionResourcePathLocationTypemismatchedinput'{'expectingRULE_COLONstyle.css/acgist-conan/src/main/resources/static/resources/cssline:32/acgist-conan/src/main/resources/static/resources/css/style.cssXtextCheck(fast)DescriptionResourcePathLocationTypemissing'{'at'a'style.css/acgist-conan/src/main/resources/static/resources/cssline:32/acgist-conan/src/main/resources/static/resources/css/style.cssXtextCheck(fast)```我们只需要去掉`xtext`的配置就可以了,如下图:
搜索引擎 -
Java使用List.of小贴士
Java9开始`List`新增了一个静态方法`of`,这个用来创建一个`List`非常的方便。但是这个和`Arrays.asList`产生的`List`很像,是不能修改的,否者会提示:```Exceptioninthread"main"java.lang.UnsupportedOperationExceptionatjava.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:71)atjava.base/java.util.ImmutableCollections$AbstractImmutableList.add(ImmutableCollections.java:77)atcom.acgist.html.HTMLFoodie.main(HTMLFoodie.java:63)```
Java List -
HTTPClient工具访问HTTPS时证书和域名不符
如果使用HTTPClient工具时,请求的域名和颁发证书时的域名不一样时会提示:```javax.net.ssl.SSLPeerUnverifiedException:Hostname'www.acgist.com'doesnotmatchthecertificatesubjectprovidedbythepeer(CN=static.acgist.com)atorg.apache.http.conn.ssl.SSLConnectionSocketFactory.verifyHostname(SSLConnectionSocketFactory.java:465)atorg.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:395)atorg.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)atorg.apache....
HTTPClient Java HTTPS -
Spring Boot使用Java10时启动失败
今天用SpringBoot写了一个测试项目,但是发现以前都没问题,今天使用时发现出现:```2018-07-2610:43:36.164ERROR9660---[main]o.s.boot.SpringApplication:Applicationrunfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'entityManagerFactory'definedinclasspathresource[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:Invocationofinitmethodfailed;nestedexceptionisjava.lang.NoClassDefFoundError:javax/transaction/SystemExceptionatorg.springframework.beans.factory.support.AbstractAutowir...
Eclipse Java Spring Boot Java10 -
词云
今天研究了一个词云的JS插件:`d3-cloud`。github:[https://github.com/jasondavies/d3-cloud](https://github.com/jasondavies/d3-cloud)演示地址:[https://www.jasondavies.com/wordcloud/](https://www.jasondavies.com/wordcloud/)DEMO地址:[https://www.acgist.com/demo/d3-cloud/index.html](https://www.acgist.com/demo/d3-cloud/index.html)其实最主要的是研究了Java的`lambda`和`stream`:```java//list里面的字符串格式:a|b|cMaptagstrMap=list.stream().filter(value->value!=null&&!value.isEmpty()).map(value->value.split("\\|")).flatMap(value->Arrays.strea...
d3 d3-cloud Java 词云