2006年8月30日星期三

appfuse(1.9.3)中的几个小问题

1.如果创建了一个新的应用,ApplicationResources_zh_CN.properties在创建过程中被转换为乱码。简单的做法就是用appfuse原来的文件直接覆盖。
2.displaytag_zh_CN.properties没被转换。修改build.xml的copy-resources task:
<!-- Copy any resource or configuration files -->
<target name="copy-resources" depends="prepare"
description="Copy .properties and .xml files from source directory">
<copy todir="${build.dir}/web/classes" includeEmptyDirs="no">
<fileset dir="web/WEB-INF/classes">
<exclude name="ApplicationResources_zh*.properties"/>
<exclude name="displaytag_zh_CN.properties"/>
<include name="*.properties"/>
<include name="*.xml"/>
<include name="*.vm"/>
</fileset>
<filterset refid="variables.to.replace"/>
</copy>
<native2ascii src="web/WEB-INF/classes" dest="${build.dir}/web/classes"
includes="*_zh*.properties" encoding="UTF-8"/>
<generate-database-properties/>
<copy todir="${build.dir}/web/classes" file="database.properties"/>
</target>
3.appgen的ant install的做法
ant install的所做的工作包括了ant[default]的工作,好像文档写的不是很准确。而且这个appgen一股脑的将ibtias and hibernate的dao都产生出来,没有一个设置目标DAO的地方。
忘了在哪里看到的说法:j2ee开发中deploy是一个非常关键的过程,确实真知灼见。
发布过程要有几个特征:
1.方便(自动化的发布);
2.灵活(定制);
3.有升级的功能(持续的升级);
4.速度要快。这样才能减少测试-开发-测试需要的round时间。

4.中文编码的问题
刚开始遇到中文问题的时候,觉得小case:统一将编码改为gb2312,原来就是经常这么干的。后来网上查了会儿,原来大家现在都用UTF-8了,就像google一样,cool!
appfuse本身就是utf-8的配置,问题在于数据库的编码,需要在my.ini中加入:
[mysqld]
default-character-set=utf8
或者mysqld命令行带上参数。
但是ant setup-db后,依然乱码。后来发现新建表的character set为latin1,column也为latin1,god! 都改为utf8后问题解决。而如何让ant setup-db自动创建utf-8的table呢?
所以appfuse的中文问题就是所有地方都要用utf-8编码!

没有评论: