Java Blog for Alex Wan

Let life be beautiful like summer flowers and death like autumn leaves.

统计

留言簿(10)

BlogJava

Blogs

DIV+CSS

JQuery相关

友情链接

常去的地方

数据供应

阅读排行榜

评论排行榜

将appfuse应用于pgsql的时候碰到的若干问题

入门参考文章
http://www.ibm.com/developerworks/cn/java/j-lo-appfuse/index.html
将appfuse应用于pgsql的时候碰到的若干问题:

ant new之后在用eclipse打开项目会有五个错误--原因是.classpath文件里面声明了五个src类型的文件夹

碰到的数据库相关问题----原因在于使用的是pgsql
在建立的项目文件夹里ant setup的时候会出错,原因在于数据库的设置错误:
解决的方法:
将build.properties里面关于数据库设置的内容释放出来,并根据自己的需要修改各个key对应的value
另外:如果还引用database.name还要添加database.name=postgres这样一个属性,否则会报错说database.name不存在
运行 ant test-all
会出现另外一个错误:role "test" doesn't exist.
解决的方法:
将properties.xml中的

<property name="database.username" value="test"/>
<property name="database.password" value="test"/>
改成
<property name="database.username" value="postgres"/>
<property name="database.password" value=""/>

再运行 ant test-all
 在开启tomcat的时候会出错(如果tomcat设置和默认的不同)
默认的定义在properties.xml的这几项设置

<property name="tomcat.server" value="localhost"/>
    
<property name="tomcat.manager.url" value="http://${tomcat.server}:${http.port}/manager"/>
    
<property name="tomcat.username" value="admin"/>
    
<property name="tomcat.password" value="admin"/>

只要将这几项改成和真实的tomcat设置,下面是我的例子:
 <property name="tomcat.server" value="localhost"/>
 
<property name="tomcat.manager.url" value="http://${tomcat.server}:8686/manager"/>
 
<property name="tomcat.username" value="admin"/>
 
<property name="tomcat.password" value=""/>
再次运行ant test-all,到最后还是会有错,这是因为国际化文件的乱码问题(中文),而且这个乱码不是所有字符都乱码
而是,只有个别文字乱码--当然具体原因我也不知道,能做的就是按照上下文进行编辑了!
资源文件所在位置:web/WEB-INF/classes
在这里我使用的Properties Editor,比较方便(我可以提供一份已修改好的资源作为参考)!

<其实这里如果用ant deploy命令是可以启动项目的啦,只是登陆页面测试的结果和期待的结果用一样>

另外切换到英文的时候也会找不到国际化的内容,反而装载了中文的资源文件的内容;这里是因为
ApplicationResources_en.properties文件是空的,估计原因是在装载资源文件的顺序上的原因吧,
我发现ApplicationResources.properties并不是空的,原则上是不会去装载中文的资源文件啊。
解决这个问题只要将ApplicationResources.properties的内容拷贝到ApplicationResources_en.properties
就可以了(这里有一种治标不治本的味道)。

在初生成版本的用户列表里面也又乱码的问题(中文的情况下),在表头和表尾的地方!
这样编辑另外一个文件:
displaytag_zh_cn.properties--路径为web/WEB-INF/classes
切换到英文版的时候发现又装载了中文的资源内容,检查原来是缺失了这个文件:
displaytag_en.properties
创建一个文件并使用编辑之!
具体的内容可以参考

http://displaytag.sourceforge.net/configuration.html

现在在项目目录下运行ant deploy然后访问,就可以出现一个基本正常的期望站点了。

By the way:ant deploy命令有时候会出现tomcat使用cpu占用率非常高的现象(导致卡机),至少我自己就发生了几次。:(

现在让我们来尝试一下新的工具:AppGen代码生成:
创建数据表,生成代码,关联hibernate文件,这些都不累赘了,因为前面所说的入门文章里面都有说了,照做便是!
不过这里也出现了问题,在我们运行回到项目文件夹里ant deploy之后,去访问刚生成的文件的添加页面的时候,你会发现有问题。

No form found under 'mytablenameForm' in locale 'zh_CN'
解决这个问题有两种方法:
(1)在build/yourapp/WEB-INF/pages/下找到你生成的文件中的form.jsp文件,去掉script标签内的内容,并去除form的检验
(2)在build/yourapp/WEB-INF的validation.xml文件中加入你对应的那个form,当然这里需要至少检查一个field!
选择哪种方法依具体情况而定.

再运行ant deploy,在之前出错的地方就不再出错了!

关于新生成表的国际化:
AppGen生成代码的时候只在 ApplicationResources.properties种添加了相关的元素
我们要做的工作就需要修改ApplicationResources_en.properties(直接拷贝)和
ApplicationResources_zh_CN.properties(拷贝并编辑)才能实现国际化

 


小小的总结一下:
Appfuse的优点:当然是快了,生成的代码非常清晰,人工干预比较少,部署方便。

目前的现实:appfuse的模板(主要是在国际化方面)似乎本身还有有点问题,出现不少乱码。

团队的问题:使用ant,对程序员的要求比较高,特别是习惯了用可视化ide编程的程序员,对这种方式比较抵触。

 

--后来我发现可以在AppFuse的目录下(web/WEB_INF/classes)替换掉之前的原文件,在生成的件就不会乱码了
哦啊啊啊啊--我打开解压后appfuse一看,偶的神仙的,appfuse解压之后就是一个eclipse项目----如果我之间去编辑解压后的
appfuse,然后在用ant命令(或直接在eclipse用)生成项目,又会怎么样呢?真又一种迫不及待要试一下的感觉! 



 



Let life be beautiful like summer flowers and death like autumn leaves.

posted on 2008-06-07 09:39 Alexwan 阅读(282) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: