问题:java lang NoSuchFieldError:ecdsa_with_SHA224

遇到问题:

root cause

java.lang.NoClassDefFoundError: Could not initialize class org.bouncycastle.cms.CMSSignedDataGenerator
    com.lsy.baselib.crypto.protocol.PKCS7Signature.sign(PKCS7Signature.java:62)
    com.lsy.baselib.crypto.processor.ECCryptoProcessor.sign(ECCryptoProcessor.java:165)

root cause

java.lang.NoSuchFieldError: ecdsa_with_SHA224
    org.bouncycastle.cms.CMSSignedGenerator.<clinit>(Unknown Source)
    com.lsy.baselib.crypto.protocol.PKCS7Signature.sign(PKCS7Signature.java:62)
    com.lsy.baselib.crypto.processor.ECCryptoProcessor.sign(ECCryptoProcessor.java:165)

解决方案:
两个包起冲突了!!!
其中光大银行提供的bcprov-jdk-1.0.jar与中信银行提供的jce-jdk13-136-1.0.jar是不同版本的里面结构也是大同小异,本来都测好的功能了,出了这茬浪费时间啊!!!!希望可以会帮助到后来的童鞋!

Solution:
This is only going to happen if you’re mixing a later version of the CMS
library with an earlier version of the provider.

ps:同样问题的童鞋

http://bouncy-castle.1462172.n4.nabble.com/NoSuchFieldError-ecdsa-with-SHA224-td2165090.html

Nginx出现upstream prematurely closed connection while reading response header from upstream错误

今日突然之间PHP的环境不好使了,打开什么页面都是502错误,查看日志错误如下:

2015/05/19 10:29:39 [error] 1616#3708: *7 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"</div>

应该是看起来应该是PHP处理出现问题了

那么查看一下PHP的9000端口 看看是否有进程在占用
1.在运行中输入cmd打开dos命令窗口,比如我想找到端口9000对应的PID(通过PID找到相应的进程)
键入命令:netstat -ano|findstr 9000

2.根据PID找到对应的进程,打开任务管理器-点击查看选项-选择(选择列)

这样就会在任务管理器上看到PID的值
 
3.找到对应的PID关闭进程,关闭PID为1944的进程

查出来之后竟然是Eclipse占用了 为何占用 挺疑惑的。。。

2015年一个新的小目标

2014年我的目标是有一辆自己的车,当然这是物质上的,也是明面上的,还有很多精神上的目标,哈哈,到年底了,驾照学出来了,然后前两天在选车,我没赞够太多钱,也就一半吧,买车也是在家买,家里人开着,后期如果我真的考虑回家的话就是我开了。

这几天去4s店看车了,说实话挑花眼,其实还是穷,要是富的话就买买买了,呵呵,同价位的车很多,看好的合资车,看看年前就买下了。

今年的目标呢,攒够首付的钱,找到一个和我一起还房贷的GF。(嗯,说的比较松,没说攒够在哪买房的钱,所以呢,没啥意外我会在今年底宣布我完成了目标,但是既然在北京工作,我的想法就是留在北京,最起码为这个目标奋斗着,如上)

临时解决baidusubmit在SAE上面WordPress中提交或修改文章报错现象

最初的baidusubmit插件,安装验证网址之后,当提交或者修改文章的时候会报如下错误:

[php]Catchable fatal error: Argument 1 passed to BaidusubmitSitemap::filterContent() must be an instance of WP_Post, instance of stdClass given, called in /wp-content/plugins/baidusubmit/inc/sitemap.php on line 427 and defined in wp-content/plugins/baidusubmit/inc/sitemap.php on line 87[/php]

观察代码之后,var_dump输出,确定已经获取到数据,但是并不是WP_Post的静态实例,尝试强制转换未生效,临时的解决方案是将inc/sitemap中第87行去掉强制转换修改为如下

[php]
static function filterContent(post, &multimedia)
[/php]

PHP cURL https SSL certificate problem: unable to get local issuer certificate 解决方案

PHP通过cURL访问https时出现SSL certificate problem: unable to get local issuer certificate的解决方法:
只要设置以下两个属性就可以解决。

将 CURLOPT_SSL_VERIFYPEER 设置为 false,
将 CURLOPT_SSL_VERIFYHOST 设置为 false.

代码如下:

<?php
cURL = curl_init();url  = 'http://www.congcong.us/';
curl_setopt_array(
        cURL,
        array(
                CURLOPT_URL =>url,
                CURLOPT_REFERER => $url,
                CURLOPT_AUTOREFERER => true,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_SSL_VERIFYHOST => false,
                CURLOPT_CONNECTTIMEOUT => 1,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36'
        )
);
//其他代码...
?>

虽然请求OK了,但是根本原因还是要解决一下的,是否此战设置证书有问题?

Gravatar头像被墙完美解决方案

最近朽木所在的电信商把0.gravatar.com给墙J了,虽说启用了多说的插件,但是后台的工具条老是一个大的叉叉,网上提供的无非是缓存/插件/修改程序代码,但是弊端很大,缓存的方式肯定要占用不必要的服务器资源,修改程序代码的话,随着Wordpress更新,每次都需要修改,朽木之前就是手动修改成了www.gravatar.com,参见Gravatar头像分流服务被墙的纠结,但是被更新包覆盖掉了。

朽木发现多说调用的头像可以正常显示,原来多说专门架设了一台Gravatar的中转服务器,为了节省带宽那么他必然要启用一定的缓存机制,那么Wordpresser们的福音来了,只需短短几行代码就可以彻底告别Gravatar别墙的困扰。

完美解决方案

gravatar-wordpress

编辑当前主题的functions.php文件,在底部加入

//头像使用duoshuo缓存
function get_avatar_deadwood( avatar ) {avatar = preg_replace( "/http:\/\/(www|\d).gravatar.com/","http://cdn.v2ex.com/gravatar",avatar );
  returnavatar;
}
add_filter( 'get_avatar', 'get_avatar_deadwood' );

从来没有在多说上出现过的头像会有一小会的延迟,不过缓存之后凭借着不到20MS的服务器速度,根本感觉不到页面加载了大量头像了。

近来gravatar被封杀的越来越厉害,大家全部都把流量“送给”多说也有点不人道,其实我们还可以用其他的第三方缓存例如https://ruby-china.org 和 https://cdn.v2ex.com/gravatar/(前缀不一致,需修改代码),另外官方的http://cn.gravatar.com 和 https://secure.gravatar.com 也都是可用的,速度尚可。

多说已经失效,目前改为v2ex的CDN,测试正常

朽木

PHP框架之Yaf框架入门

框架的存在主要意义就是提高程序员的开发效率,同时也带来性能上的一部分损失。
当前开发面向对象已经成为主流,同时为了规范开发使用MVC模式已经成为了一种趋势,当前市面上的框架非常之多,大部分也是MVC模式,但是相对来说对于PHP性能都一定的损失。

那么有没有一种框架既能满足开发效率,又尽可能少的减少性能的损失呢?于是Yaf框架面世。
Read more