-
XML解析
做了一个XML的工具,满足一下常用的功能,如果有什么问题,欢迎指点。XPath感觉用起来还是非常顺手的,非常简单的选择器,非常的好用。XPath语法:[http://www.w3school.com.cn/xpath/xpath_syntax.asp](http://www.w3school.com.cn/xpath/xpath_syntax.asp)```javapackagecom.acgist.utils;importjava.io.ByteArrayInputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;importorg.apac...
XML dom4j XPath -
微信支付
今天弄了弄微信支付,一些细节标注一下:##body不是UTF8编码这个东西主要是因为只有body这里才可能有中文,所以这么提示,原因是我是用的`HTTPClient`这个工具,需要在添加参数的时候设置一下编码,而不是将`body`转为`UTF-8`。代码如下:```post.setEntity(newByteArrayEntity(newString(xml.toString()).getBytes("UTF-8")));```##invalidtotal_fee这个问题是因为你的价格不符合规定,价格为分,必须为整数。说实话感觉微信支付的文档有点乱,而且很多地方都没批注,就比如签名的`key`我去,我搞了很久才知道在哪里去找。搞了一会我又想喷了,证书是安装了几次了。。。
微信支付 -
XML解析异常
最近看了一下微信支付的接口,不得不说这接口还用的是XML,在当下JSON火热的情况下使用XML还是要一定勇气的。而且最坑爹的是XML不能使用`]]`,自己还要转义,但他返回的XML居然可以使用。好吧进入主题,说一下这个问题,下面是TX返回的内容:```xml<xml><return_code><[http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3118061.html](http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3118061.html)更多详细信息以及安装配置:[http://19001989.blog.51cto.com/3447586/701186](http:...
Nginx -
MySQL使用like查询使用索引情况及fulltext索引
最近有个功能需要使用到模糊查询,当时我也不想使用`lucene`来做,所以就像直接使用MySQL的`like`查询就可以了。于是就在这个字段上面建了个索引,但是印象中我记得好像`like`查询是不能使用索引的,所以我这里做了个实验,结果如图:我相信上图已经非常直观的给出答案了,我就不多解释了。如果需要实现模糊查询怎么办,这时我们需要使用到`fulltext`索引,但是需要注意只有`MyISAM`这个引擎的MySQL才能支持,而且对中文支持不好,主要是中文分词,因为我这里都是查询的一些标签而且都是用逗号分隔所以查询起来效果还可以,如果是用来文章检索,还是看看有什么插件或者使用其他方法了。如果使用`fulltext`查询不到结果那么可能有以下几个问题:1.你的数据库引擎不对2.中文分词3.MySQL有一个设置:`ft_min_word_len`这个是最短的索引字符串,默认为`4`,如果查询的字符串小于这个值,也查下不到4.如果你的关...
MySQL like 索引 fulltext -
MySQL启动失败
这次直接使用的tar.gz安装的,遇到了一些新问题:首先版本升级到了5.6,配置编码改为:`character-set-server=utf8````15071718:36:55[ERROR]Can'tstartserver:Bindonunixsocket:Permissiondenied15071718:36:55[ERROR]Doyoualreadyhaveanothermysqldserverrunningonsocket:/var/lib/mysql/mysql.sock?15071718:36:55[ERROR]Aborting```这个因为MySQL用户没有权限对`/var/lib/mysql`读写如果提示:```ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)```需要在`my.cnf`里面配置:```[client]socket=/var/lib/mysql/mysql.sock```如果密码设置错误,可以使用`./mysql--skip-grant-tables`启动就不要密码了...
MySQL -
文本比较算法(二)
上一次我写了一个文本比较算法,发现效率非常低,而且内存消耗非常大,这里优化了一下。代码如下:```javapackagecom.acgist.nlp.query.compare;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collections;importjava.util.List;importorg.apache.commons.collections.CollectionUtils;publicclassPath{privateListsource;privateListtarget;privateListsourceTmp;//临时privateListtargetTmp;//临时privateboolean[][]map;publicPath(){}publicPath(Listsource,Listtarget){this.source=source;this.target=target;this.sourceTmp=newArrayList();this.targetTmp=newArrayList();}p...
文本比较算法 最大路径 -
文件下载陷阱
之前我写过下载文件的一段代码,但是后来发现居然用户经常下载出错,但是我本地试了很多次都没问题,为什么?最后我偶然发现了问题,就是我连续点击了两次下载时,第一次的下载居然失败了。**原来我每次下载一个订单时都会重新生成一个订单文件,这样会导致第一次没有下载完成的订单文件被删除。**所以这里从新修改了一下代码,判断一下文件的最后修改时间和订单最后修改时间,防止文件删除,也能防止订单修改后文件还是旧文件。小小细节,困扰许久啊。
文件下载陷阱 -
文本比较算法
最近我是在网上看过一个例子,突然就有点兴趣了,于是乎自己就写了一个算法。先列出网上的一个例子:[http://wenbenbijiao.renrensousuo.com/#diff](http://wenbenbijiao.renrensousuo.com/#diff)这个是一个在线文本编辑的,但是感觉有一些问题。例如:```"A","B","C","A","C","A","D","F","A","B","C","A","C","A","D","F""B","C","X","C","A","D","F","E","S","B","A","B","C","A","C","A"```上面这两个文本,换行后比较结果:明显这个是有点问题的。于是我在网上看了一篇文章:[http://blog.csdn.net/sunskyor/article/details/4491656](http://blog.csdn.net/sunskyor/art...
文本比较算法 -
Freemarker错误和一些常用配置
错误代码:```java0ERROR[main]freemarker.runtime--ErrorexecutingFreeMarkertemplate03七月201514:25:32,730FreeMarkertemplateerror:Thefollowinghasevaluatedtonullormissing:==>json[intemplate"template.ftl"atline56,column49]Tip:Ifthefailingexpressionisknowntobelegallynull/missing,eitherspecifyadefaultvaluewithmyOptionalVar!myDefault,oruse<#ifmyOptionalVar??>when-present<#else>when-missing.(Theseonlycoverthelaststepoftheexpression;tocoverthewholeexpression,useparenthessis:(myOptionVar.foo)!myDefault,(myOpti...
Freemarker -
PHP的Nginx配置
```server{listen80;server_namebbs.acgist.com;root/home/www/bbs;#charsetutf-8;access_log/var/log/nginx/bbs.acgist.com.logmain;location~*\.(mp3|mp4|gif|png|jpg|css|js)${expires30d;add_headerPragmapublic;add_headerCache-Control"public,must-revalidate,proxy-revalidate";access_logoff;log_not_foundoff;tcp_nodelayoff;root/home/www/bbs;error_page404/resources/images/404.png;}location~\.php${root/home/www/bbs;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_...
Nginx PHP discuz -
项目Jar错误
首先贴上错误代码:```java严重:Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'shiroFilter'definedinURL[file:/E:/workspace-java/.metadata/.me_tcat7/webapps/500doc/WEB-INF/classes/applicationContext-shiro.xml]:Cannotresolvereferencetobean'securityManager'whilesettingbeanproperty'securityManager';nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Erro...
Java Jar错误 -
SVG导出PNG
今天研究了一下把SVG导出PNG图片,东西不难就是有一些地方需要注意,我这里主要是吧`IcoMoon`生成的字体导出图片。##首先准备工作下载Apatch的[batik](http://xmlgraphics.apache.org/batik/),我这里用的是`batik-1.7.1`这个版本。##准备好SVG数据我这里是在[IcoMoon](https://icomoon.io/)导出来的webfont,非常不错的webfont工具,可以生成SVG文件,或者[阿里妈妈](http://www.iconfont.cn/)也可以。下面是一个SVG文件:```xml```这其实就是一个xml文件,好了我们开始来生成我们的PNG了。下面直接先贴代码:```javapackagecom.acgist;importjava.io.ByteArrayInputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importorg.apache.batik....
SVG SVG导出PNG batik -
两个不错的CSS框架
最近发现了两款不错的CSS框架,当然本人不是非常喜欢使用CSS框架的,因为毕竟要有时候用一个效果要加载很多无用的东西,但是这两个框架非常不错我这里贴出来。首先是一个动画效果的框架`animate.css`,演示地址:[http://daneden.github.io/animate.css/](http://daneden.github.io/animate.css/)然后就是一个按钮的框架`hover.css`,主要是一些按钮`hover`的动态效果:[http://ianlunn.github.io/Hover/](http://ianlunn.github.io/Hover/)用了`hover.css`不得不说`after`和`before`这些伪元素的重要性啊,感觉很多CSS一些冷门的选择器非常的有用啊,不如`+`这个选择器有时候非常好用。
animate.css hover.css CSS -
JS跨域
今天下午有用户反应说图片上传不了,提示:`SecurityError:Blockedaframewithorigin"null"fromaccessingacross-originframe`问题很简单,这就是一个跨域的问题,为什么会出现这个问题呢,网站不可能会出现这个问题的。我就问什么浏览器,他截了个图:一看协议居然是`file://`,他居然是把页面保存到本地在编辑的,我顿时就石化了。
javascript JS 跨域 -
CSS3伪元素控制表单样式
我相信很多同学都和我一样,不喜欢浏览器自作多情的一些表现,比如IE密码后面的删除输入信息的那个X,日期/数字`input`后面的上下箭头符号,`datalist`下拉箭头,还有IE说出密码什么想手机wifi那个图标以及很多诸如`range`、`meter`、`progress`等等新属性或标签的内置样式修改,但是又不知道怎么清除,今天终于是找到一片好文章,使用CSS的伪元素很轻松的就可以去掉这些东西,下面贴出连接:[http://www.w3cplus.com/css3/list-of-pseudo-elements-to-style-form-controls.html](http://www.w3cplus.com/css3/list-of-pseudo-elements-to-style-form-controls.html)可以看看本站上面的搜索输入框就修改了样式:```cssinput::-webkit-calendar-picker-indicator{color:#1ABC9C;background:none;}```>20220608批注现在基本上对于样式没有什么太多追求了,感觉再怎么漂...
CSS3 伪元素 表单样式 -
Spring整合Ehcache
Spring可以直接使用注解来缓存数据,这个非常不错的功能,但是今天遇到了一个小问题,记录一下。下面两段代码:```java@Cacheable("article")publicListfindArticleNew()...@Cacheable("article")publicListfindArticleHot()...```这两个就会出现问题,本来是两个完全不同的逻辑但是查询出来的数据是一样的,那么为什么呢,原来如果你默认不配置`key`的时候,Spring是根据参数来决定缓存的`key`的。这两个都没有参数,所以`key`是一样的,就会得到同样的值了。解决问题:```java@Cacheable(value="article",key="'article_new'")publicListfindArticleNew()...@Cacheable(value="article",key="'article_hot'")publicListfindArticleHot()...```加上`key`就可以了,**注意`key`的使用SpEL表达式**。>参考文章:[http://sishuok.com/...
Spring Ehcache -
JSON转换错误
```UncaughtSyntaxError:Unexpectedtokenu```这个错有有点狗血,提示的位置不是在`JSON.parse`这一行而是提示在了`:1`第一行,原因就是`JSON.parse`转换的不是一个符合规范的JSON字符串。所以转换的时候判断一下就可以了。
JSON parse -
List对象Ehcache序列化问题
错误信息如下:```javajava.io.NotSerializableException:java.util.ArrayList$SubList```其实错误已经提示非常明显了,就是`list.subList`这个方法返回来的对象是为实现序列化接口的,和`Arrays.asList`这个方法一样。解决方法很简单:```javanewArrayList<>(list.subList(begin,end));```重新生成一个集合就可以了。
Ehcache 序列化 List -
jar冲突
```13-Jun-201501:24:15.830SEVERE[http-nio-8080-exec-8]org.apache.catalina.core.StandardWrapperValve.invokeServlet.service()forservlet[mvc]incontextwithpath[]threwexception[Handlerprocessingfailed;nestedexceptionisjava.lang.NoSuchMethodError:org.apache.commons.lang.ArrayUtils.isNotEmpty([Ljava/lang/Object;)Z]withrootcausejava.lang.NoSuchMethodError:org.apache.commons.lang.ArrayUtils.isNotEmpty([Ljava/lang/Object;)Zatcom.acgist.dao.impl.BaseDAO.findList(BaseDAO.java:74)atcom.acgist.service.impl.WordService.ad...
jar冲突 ArrayUtils