自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

祝坤荣的随想

思考,求知

  • 博客(133)
  • 资源 (3)
  • 收藏
  • 关注

原创 Hibernate SQL实际sql语句监控- p6spy+hibernate+proxool 设置

由于ORM工具的缘故,我们调试程序的时候远没有直接在程序里直接写个string的SQL简单,想当年查个sql是有多么的幸福,一行sql = "select * from ..."找找就行了, 现在用了hibernate, 就算在JPA中开了show_sql=true, 打出来的还是一串 "name = ? and id = ? "好在找到一个工具, p6spy, 作为真正JDBC的一个代理,

2015-02-12 16:05:05 629

原创 杂谈X509证书, Java Keystore与Jetty

很多人对JSSE组成部分的Key Tool 工具不太明白,希望本文能有帮助科班出身的同学应该学过课程“密码学”, 这门课详细解释了现代对称加密的算法原理, 当时学的我云里雾里。 直到现在使用过SSL加密才知道工程上用法是这样的, 老师讲的时候就不能带一点工程实践吗? 简单来说,对称加密体系就是我有一段需要加密的字符, 我用私钥加密之后变成了无意义的密文, 只有用配对的公钥才能对这个密文进行解密

2015-02-12 16:04:59 1854

原创 JVM的SNMP监控配置

近期看了一下JVM对监控的支持,除了常规的JMX外居然还有SNMP, 有点意思, 这个网管协议适配的地方还真多,那么就先测试一下。先随便找一个能在后台持续运行的java小程序,如我手头的BIO的socket服务器。 JVM端SNMP的配置启动SNMP需要两个地方更改,(http://docs.oracle.com/javase/7/docs/technotes/guides/man

2015-02-12 16:04:48 923

原创 cmd 下通过NTML代理访问Maven 库

公司用web代理,NTLM验证的,这样在普通CMD下无法使用mvn命令访问网上的maven库,使用CNTLM工具解决。下载CNTLM工具,安装,修改安装路径下的cntlm.ini,改成实际的ntlm proxy地址,CNTLM会起一个proxy service监听3128端口。然后配置maven的代理,在maven目录下\conf/settings.xml, op

2015-02-12 16:04:43 362

原创 Jetty - linux -Too many open files

今天碰到个问题,jetty系统跑的时候点击页面突然报 internal server error 错,翻了一下日志,发现很多jsp not found的错误:2013-11-28 04:29:16,500 WARN [SymmetricDS] [log] [1002316844@qtp-718123118-23] /xx/xx/xx/xx/xx/xx-wizard.do org.apache.

2015-02-12 16:04:28 831

原创 psql error: psql: symbol lookup error: psql: undefined symbol: PQconnectdbParams

linux遇到一个Postgresql的问题,在调用pg_restore时:./pg_restore -h 127.0.0.1 -p 5432 -U postgres -v -d dbname /usr/local/backup.tar出了一个错psql error: psql: symbol lookup error: psql: undefined symbol: PQconnec

2015-02-12 16:04:22 4155

原创 小米抢购页面脚本研究

小米3这次抢购,比较无聊,整天让人排队, 所以看了下抢购页面的脚本。 当年小米1抢购的时候页面不是这样的, 代码都比较直接, 这次看页面发现页面对js加了密, 其实也就是增加点对新手的难度,想看代码还是挺容易, 还没有研究完,先开个头,记在这。可以看到抢购点击的核心代码都放在了变量_$中,如何看到这些代码呢,简单: var _$=["\x70\x68\x6f\x6e\x65","\x4

2015-02-12 16:04:17 8786

原创 Windows shell 创建用户,并将service启动用户设为该用户

最近改InstallAnyWhere脚本,其提供的action中可以调用系统的command或script,windows下就是CMD命令和BAT,有些实用命令记录一下。 创建用户test,密码为password:net user test password /ADD 删除用户test:net user test /delete 授权用户对某目录d:\Program

2015-02-12 16:04:10 845

原创 处理E160004: Corrupt node-revision 'lx-249.0-248.r1186/2192'

今天遇到SVN 的 repository 被一哥们提交搞坏了,这个目录任何操作都是显示: E160004: Corrupt node-revision 'lx-249.0-248.r1186/2192'  无奈在svn server上跑了下svnadmin verify c:\Repositories\project* Verified revision 1183.* Ve

2015-02-12 16:04:04 3345

原创 python url2lib HTTP Error 407

公司的网络环境是通过代理上网,用python url2lib普通的代理验证不能通过,示例代码:url = 'www.python.org'username = 'user'password = 'pass'password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()# None, with the "WithDefaultRe

2015-02-12 16:03:59 1194

原创 一个简单XSS攻击示例及处理

最近项目被第三方工具扫描出来有一个Http head xss cross scripting漏洞,为了修复这个,顺便研究了一下跨站脚本攻击的原理, 跨站脚本攻击基本上就是sql注入的html版, 核心内容就是把一段精心设计的脚本通过网页中的html漏洞由HTTP GET/POST传给服务器并执行. XSS主要有两种,一种是注入的链接需要骗人来点击,目的是劫持用户的cookie; 一种是该脚本已经通

2015-02-12 16:03:52 1979

原创 简单的Spring的bean实例化过程

以XmlBeanFactory为例,最简单的取bean方式是: BeanFactory factory = new XmlBeanFactory(new FileSystemResource("D:\\workspace\\JavaApplication2\\src\\javaapplication2\\spring\\beans.xml")); Car obj

2015-02-12 16:03:46 591

原创 new Class() 与 Class.newInstance()

new Test()的过程基本等于: Class clazz = Class.forName("Test");  clazz.newInstance();第一步由类加载器查找类路径下的目标类,并加载类实例,对应到JVM就是加载到了方法区。第二步类实例加载完成后生成对象实例,实例数据保存在JVM的Heap中。 new Clazz()可以直接由IDE检查类的存在, Class.

2015-02-12 16:03:40 360

原创 解决 dropdb: could not connect to database postgres: could not connect to server:

今天在调试一个脚本的时候遇到这个错误:dropdb: could not connect to database postgres: could not connect to server: 这个脚本调用了postgresql的dropdb命令。找了下资料似乎是dropdb时候找的库不对导致的。 由于这个脚本以前是对本机postgreSQL操作的,这次是对remote的postgreS

2015-02-12 16:03:34 4304

原创 /tmp does not have enough disk space解决

最近装一个linux应用遇到空间不够,遇到以下提示:/tmp does not have enough disk space! 我是用虚拟机的,所以给虚拟机增加一个新的disk,这里我是virtual box的vdi文件。虚拟机加好后进入linux:fdisk -l 查一下硬盘信息,看看新加的硬盘在哪。 新加的磁盘名字是/dev/sdb.然后进行磁盘分区:fdisk /

2015-02-12 16:03:28 3076

原创 JDK ArrayList 删除源码

ArrayList是JDK提供的一个数组list,其实现基于java的数组, elementData是声明在该类里面的实际保存数组的变量: private transient Object[] elementData; 删除:remove的时候,需要遍历整个数组,找到匹配的元素, 然后调用内部私有方法,进行快速删除(fastRemove),这个删除方法不检查数组下标长度

2015-02-12 16:03:23 264

原创 JDK Keytool 使用及理解

windows系统的根证书放置在注册表中:KEY_LOCAL_MACHINE-SOFTWARE-Microsoft-SystemCertificate-ROOT-Certificate  java信任的根证书放置位置在: D:\Program Files\Java\jdk1.6.0_24\jre\lib\security\cacerts 在此目录下用 keytool -list -

2015-02-12 16:03:16 889

原创 JDK SSL连接建立的一些细节及解释

SSL通道能解决用户验证,指纹防篡改,数据加密。 用户验证通过双方的证书链来进行, 防篡改有证书的数字签名,数据加密则由SSL握手协商后的对称密码来对socket包进行加密。 SSL双向验证中,1)客户端需要提供自己的证书供服务器端进行验证。2)服务器端用客户端的证书中的公钥对握手数据加密,客户端需要用自己的密钥来解密握手数据。3)握手中需要产生随机数。 所以JDK中的SSLContext

2015-02-12 16:03:10 2789

原创 Jetty class loader 类加载过程源码分析初稿

Jetty是个servlet容器,要理解servlet容器的class loader,要先看 JSR315 servlet 3 中对web application class loader的要求,比较重要的地方加了中文解释。10.7.2 Web Application Class LoaderThe class loader that a container uses to load a

2015-02-12 16:03:05 292

原创 ubuntu 下安装sun jdk7,firefox22安装jre

安装包是jdk-7u25-linux-i586.gz,解压:tar -xvzf jdk-7u25-linux-i586.gz 拷贝到/usr/lib/jvm下:sudo cp -rf jdk1.7.0_25 /usr/lib/jvm 更改环境变量:gedit ~/.bashrc (redhat,centos 下为/etc/profile)打开后加入:export

2015-02-12 16:02:59 310

原创 Hibernate源码分析杂记

最近在看hibernate在load entity过程中的操作, 包括为实体类做增强,自动flush,一级缓存,在这里记录一下,慢慢会继续更新。 DefaultLoadEventListener:final PersistenceContext persistenceContext = event.getSession().getPersistenceContext();State

2015-02-12 16:02:53 744

原创 ehcache在Jetty容器中的JMX监控设置

在web.xml中加入listerner来将ehcache注册到MBean,Listener代码内容如下: CacheManager manager = CacheManager.getInstance(); MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();

2015-02-12 16:02:47 799

原创 web容器中用jmx监控hibernate sessionFactory

以tomcat为例,加入一个listner监听容器启动:  ServletContextListener com.my.listener.StartupListener  Listener中的内容:@Override public void contextInitialized(ServletContextEvent

2015-02-12 16:02:41 754

原创 SymmetricDS 2.2.5 undeploy时symmetricScheduler job线程杀不掉分析

SymmetricDS的同步机制是定时周期性同步,我们项目根据业务需要,只需要客户在UI激活一次replication时候才开始同步,所以这里我们的设计是每次激活时,用symmetric自己的deploy/undeploy机制让其在启动时候自动跑replication任务。 最近遇到一个问题, 在使用中,发现当数据同步时间间隔设在1小时以内时,运行一天以上会发现大量的SymmetricSc

2015-02-12 16:02:35 444

原创 servlet redirect/forward/session/cookie 与 HTTP 协议的测试

本文直接展示servlet的测试结果。 servlet的代码中使用sendRedirect:  public class SessionTest extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response)

2015-02-12 16:02:29 803

原创 Http服务器如何在HTTP response中传送二进制图片

要想知道如何传送这些二进制,先来点二进制文件的背景知识  —文件魔数 magic number:操作系统的文件,其起始的几个字节的内容是固定的。根据这几个字节的内容就可以确定文件类型,因此这几个字节的内容被称为魔数 (magic number), 对于GIF,JPG这种二进制跨系统都是支持的(linux/Windows),对于.exe .bin这类操作系统相关的就不一样了。 如

2015-02-12 16:02:23 8038

原创 ehcache monitor启动错误UnknownHostException

@echo onif not defined JAVA_HOME (  echo JAVA_HOME environment variable must be set  exit /b 1)setlocal enabledelayedexpansionset JAVA_HOME="%JAVA_HOME:"=%"set PRGDIR=%~d0%~p0..set PRGDIR="%

2015-02-12 16:02:17 802

原创 NPF driver not running

装了WireShark想看看协议分析的东西, 结果在WIN7装装了之后第二次启动就报这个莫名其妙的错误, NPF driver not running. 查了点资料,用以下命令解决:用admin权限的cmd下输入sc qc npf , 查看该NPF的状态。启动的命令为sc start npf。以后可以把这个服务调成自启动: sc config npf start= auto

2015-02-12 16:02:11 813

原创 Redmine1.x上 ezFAQ插件导出PDF错误

查了一下,我这个版本的ezFAQ中需要IFPDF类在Redmine1.x里没了,要把插件脚本IFPDF改成引用ITCPDF,就可以了。插件安装目录下找app/controllers/ezfaq_controller.rb. Line 209 和Line 237.

2015-02-12 16:02:05 435

原创 [转]Bitnami RedMine 迁移,备份,恢复

1、停掉所有服务(manager-windows.exe程序中可以操作此步骤);2、复制BitNami Redmine Stack安装目录到新服务器相同路径;3、cmd下cd到BitNami Redmine Stack目录,执行“serviceinstall.bat INSTALL”(INSTALL必须大写,参见serviceinstall.bat文件内容);4、打开manager-wind

2015-02-12 16:01:59 1667

原创 Windows下Redmine插件安装

把插件解压出来拷到C:\Program Files\BitNami Redmine Stack\apps\redmine\vendor\plugins目录,C:\Program Files\BitNami Redmine Stack\apps\redmine\vendor\plugins>rake db:migrate_plugins RAILS_ENV=production我redmin

2015-02-12 16:01:53 1804

原创 [转]redmine与SVN的Https方式整合问题

Redmine与SVN结合进行版本管理,SVN默认连接方式为HTTPS;但是在这种连接方式下,Redmine会出现404错误,很多人因此舍弃安全性而转向HTTP协议,其实并不是没有解决办法,解决方法如下:1. 打开cmd , 输入:cd svn --config-dir webserverRedmine co https:// (文件夹名随意,该文件夹会生成在cmd的当前工作目录,是从svn

2015-02-12 16:01:47 752

原创 ExceptionInInitializerError

最近遇到 Class.newInstance 时候抛出ExceptionInInitializerError 异常, 这种异常一般是类初始化时遇到问题,样例代码: static { try { Loader.setPath( base + "folder/" ); Loader.load( "ab

2015-02-12 16:01:41 686

原创 object标签codebase版本 没有正确下载

这个问题比较隐蔽, 正常我们在object标签中标识了该activeX控件的版本号,由浏览器在运行时比较版本并自动下载,我的例子: 这里能让浏览器正常比对的版本格式必须是用逗号的, 我们在修正一个bug的时候将版本号改成了#version=1.0.1.1, 导致一直出错,无法正常下载控件, 调试了很久才找到是逗号的原因。

2015-02-12 16:01:35 1728

原创 Proxool 注册shutdown hook的代码

通过API取得当前Runtime环境, 反射调用Runtime的addShutdownhook方法。感觉为什么不直接调用却用反射,用意何在             Thread t = new Thread(this); t.setName("ShutdownHook"); Runtime runtime = Runtime.getRunt

2015-02-12 16:01:29 445

原创 Proxool 连接池销毁问题

Proxool是常用开源连接池,最近遇到点该连接池销毁时的问题, 记录下来。项目中使用JPA的hibernate实现, persistence.xml中hibernate配置的连接池是proxool. 遇到的问题是项目中有很多后台运行的service, 这些service在servlet 容器做shutdown操作时候会先被关闭,最后在contextDestroy方法中做clean操作。 

2015-02-12 16:01:23 1690

原创 Java中处理日文时String equals不等的问题

String japChar = "オン";String japGetFromOther :japGetFromOther.equals(japChar); 之前遇到一个问题, 在一个日文系统里, 由JDK返回的一个日文的值,在做equals对比时无法与java代码中已经写好的日文进行比较, 一直都是返回false。研究了一下, 将代码改成以下:japChar = new St

2015-02-12 16:01:17 464

原创 SymmetricDS加密symmetric.properties中数据库密码产生"Illegal Key Size"错误

根据symmetricDS的guide文档,想要加密symmetric.properties中的db.password,需要跑以下命令:sym -p E:\someplace\symmetric.properties -e dbpassword中文版的JDK会出现"Illegal Key Size" 错误, 这是由于美国对加密的进出口限制,不允许高于56位的加密, 可以从ORACLE网站下

2015-02-12 16:01:11 461

原创 开源协议的区分

开发中经常遇到要使用第三方类库, 查看类库的协议保证要求闭源的商业软件的利益是必备基本功,下面也是参考了网上的文章。BSD开源协议(original BSD license、FreeBSD license、Original BSD license)BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件

2015-02-12 16:01:05 287

原创 Could not determine type for: java.util.Collection, at table: 解决

Could not determine type for: java.util.Collection, at table:该错误有可能的原因是:  在实体类的属性中的annotation, 要么就全写在属性上,要么就全写在get方法上,不能混用。 @Entity@SequenceGenerator(name = "Person_Seq", sequenceName = "perso

2015-02-12 16:00:59 1459

企业应用架构模式英文版

Martin Flower的经典书, 企业应用的经验总结

2009-02-11

Xenocode Postbuild 2007 破解版

Xenocode Postbuild 混淆工具,即将 命名空间名、类名、方法名、字段名等统统换成特殊符号或其它符号 可以打包Framework,虚机运行,实在让人叹!

2008-11-28

javaPersitenwithHibernate

hibernate之父的新作

2007-04-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除