解决 Null value was assigned to a property

晚上开始写贴吧分类,把class改成category,规避了关键字class,也显得更合理,百度的分类就是ct

然后在分类上遇到一个小问题,category_father在数据库是integer类型,可以为null,因为存在根分类,在这种情况下用Hibernate读取 Category时会产生错误

在jUnit单元测试中就通不过,错误为 org.hibernate.PropertyAccessException: Null value was assigned to a property

Google后,发现Category中定义categoryFather为int类型,是不支持null的,需要改为Wrapper类Interger

有人说只需要设定setXXX和getXXX的Integer的类型和.hbm.xml文件中个Type="java.lang.Integer"就可以了

但是经过我测试发现,categoryFather 这个成员也要定义成Interger,否则会报错 org.hibernate.PropertyAccessException: Exception occurred inside setter of ...

晚上写完分类,感慨到:框架先行,功能其后 ...

more ...

Struts2的编码问题

继续昨天的编码问题 我一直全部采用UTF-8格式,而且在jUnit测试中并没有问题,说明是在Struts进行数据收集时候出错。

Google之后,根据网上一些建议修改web.xml struts.xml 但都没有效果。

网上建议在web.xml中添加 :

<filter>
    <filter-name>struts-cleanup</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>struts-cleanup</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

来设定本地化和编码,然后在struts.xml中添加过滤器

<constant value="UTF-8" name="struts.i18n.encoding"></constant>
<constant value="UTF-8" name="struts.locale"></constant>

根据我测试 ...

more ...

学习使用log4j

今天用Log4j时候,感觉只显示message讯息太少了,直觉上这些流行的工具应该会提供更强大的定制功能,就去google了一下

果不其然:相关配置参数如下

Pattern to output the caller's file name and line number.

%m 输出代码中指定的消息

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%c 输出所属的类目,通常就是所在类的全名

%t 输出产生该日志事件的线程名

%n 输出一个回车换行符,Windows平台为「rn」,Unix平台为「n」

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd

HH:mm ...

more ...

贴吧进度-09-05-07

今天写到创建帖子,在编码上遇到问题,jUnit下调用函数没有任何问题,那就表示问题出在Struts Filter捕获的文本上。

找了好几个方法都没有奏效。

游客登录情况下的Session还存在一点问题,原因是session类型转换上的问题,今天还没有好好的研究一下。

至此为止,登录注册写完了,静态校验写了一个毛胚,今天写完的现实帖子的列表,表现层用OGNL完成的,终于脱离开代码混杂的页面。

解决了一个tx.commit的错误,原来是《开发者突击》书上的代码有问题,我参考了Hibernate的官方文档,终于发现了错误的原因,tx.rollback ()应该在catch里面而不是final里面。

写着写着就感觉自己太多的不足,太多要学习的地方,加油!

more ...

No configuration found for the specified action

Tomcat 控制台打出如下警告:

WARN - No configuration found for the specified action: ‘xxxxx’in namespace: ‘/’. Form action defaulting to ‘action’ attribute’s literal value.

主要由于在写struts2表单时有给action指定全名,如:,直接写成即可,因为在struts.xml中struts.action.extension属性有指定啦。

有一个关于在namespace上的设置在 hi.baidu.com/mum0532/blog/item/128f9a64fa8594f5f6365457. html 。这位朋友讲的很透彻很详细

关于Struts2 的 namespace 详细解释 www.javaeye.com/topic/125743

more ...

网站被挂木马了```

寒假就发现自己的那个网站能被万能asp密码攻破,还留了一句"网站有漏洞,请加强防护"

当时不知道什么造成漏洞,就写了一个ipTrace来跟踪ip

前段时间打开ipTrace一看,有这么多用户非法登录

61.51.177.16 2009-4-4 9:02:40 -1 北京市 网通(崇文区)

58.251.77.207 2009-4-4 9:27:39 -1 广东省深圳市 网通

219.149.162.151 2009-4-4 9:39:08 -1 山西省大同市 电信

219.149.162.151 2009-4-4 9:50:41 ...

more ...


OpenSSL 编程入门【转载-这篇很精】

OpenSSL 编程入门

作者:Eric Rescorla on Sat, 2001-09-01 01:0

如果你急切的想构建一个简单的Web客户端和服务器对,这时你就需要使用SSL了..

SSL是一种保护基于TCP协议的网络应用最快而且最简单的的方法,如果你正在用C语言做开发,那么对于你来说,最好的选择可能就是使用OpenSSL了. OpenSSL是在Eric Young的SSLeay包的基础上对TSL/SSL的一个免费的执行(类似于BSD方式的License).然而, 不幸运的事情是, 伴随OpenSSL一起发布的文档和示例代码并不是很完全, 使用它的人需要更多的东西.在OpenSSL被使用之处, man手册都相当优秀,可是这些手册失去了大的背景 因为它们只是参考资料而不是教程.

OpenSSL的API多而复杂, 因此我们在此并不会作出一个完整的讲述. 相反,我的目的只是教会你如何去高效的使用man手册.在本文中, 我们将会通过构建一个简单的Web客户端和服务器来演示OpenSSL的基本特点. 而在后续的第二篇中我们将会介绍OpenSSL的一些高级特性, 比如会话恢复和客户端认证等.

在话题开始之前, 我会认为你已经熟悉SSL和HTTP了, 或者最起码在概念层上应该有一些了解. 如果你对此一无所知, 推荐一个比较好的方法,那就是参考RFC(参见附录).

由于篇幅原因, 本文只包涵了源代码的一些摘录, 完整的代码可以从作者的站点http://www.rtfm.com ...

more ...

OpenSSL中的BIO【转载】

SSL类型的BIO

---根据openssl doccryptobio_f_ssl.pod翻译和自己的理解写成

(作者:DragonKing, Mail: wzhah@263.net ,发布于:http://openssl.126.com 之openssl专业论坛)

从名字就可以看出,这是一个非常重要的BI O类型,它封装了openssl里面的ssl规则和函数,相当于提供了一个使用SSL很好的有效工具,一个很好的助手。其定义(opensslbio.h,opens slssl.h)如下:

BIO_METHOD *BIO_f_ssl(void);

define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl)

define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL ...

more ...

用openssl编写ssl,tls程序实例【转载-作者:yawl(yawl@nsfocus.com) 】

◆ 用openssl编写ssl,tls程序

作者:yawl(yawl@nsfocus.com)

日期:2000-8-15

一:简介:

ssl(secure socket layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.tls(transport layer security)是ietf的tls工作组在ssl3.0基础之上提出的安全通信标准,目前版本是1.0,即rfc2246.ssl/tls提供的安全 机制可以保证应用层数据在互联网络传输不被监听,伪造和窜改.

openssl(www.openssl.org)是sslv2,sslv3,tlsv1的一份完整实现,内部包含了大量加密算法程序.其命令行提供了丰富的加密,验 证,证书生成等功能,甚至可以用其建立一个完整的ca.与其同时,它也提供了一套完整的库函数,可用开发用ssl/tls的通信程序. apache的https两种 ...

more ...