by agate - Published: 2007-09-21 [9:41 下午] - Category: 程序编码
最近由于学习struts2.0和webwork的需要我尝试了eclipsework的eclipse插件的使用。可能是因为财力问题,或者是作者无力再维护的缘故,eclipsework的wiki以及FAQ十分少,甚至连基本的文档都没有,只留下sourceforge的一些看不懂的视频……
管他的!但是用的时候发现其webwork的action.xml向导文件再进行动态更新xwork.xml的工作中始终无法找到xwork.xml让我十分头疼,甚至连google和baidu都无法受到解答(尽是一些同样问题的提问……)。
没办法咯,只好自己开始翻看他的src发现似乎是在解析xml-update的时候出现了问题,仔细翻看action.xml文件发现
<xml-update file="xwork.xml">
<package name="${xwork_package_name}" extends="${xwork_package_extends}"
namespace="$!xwork_package_namespace" check-before-create="true">
<action name="${xwork_action_name}" class="${action}"
method="$!methodName">
<result name="success" type="${radio}">${resultName}</result>
</action>
</package>
</xml-update>
这个file到底是什么,如果只是xwork.xml应该不会出现这个问题的……
进一步查看官方网站的资料发现:file是一个标签,可以指定到一个文件
哈哈终于真相大白,原来这个template包是有小小的bug的,只要在签名适当的地方加入
<file name="xwork.xml" label="xwork.xml" type="folder" extensions="xml"/>
就行了!
这样变解决了eclipsework中的webwork自动生成的问题!再次感谢eclipsework的作者!一个让我感动的插件!
by agate - Published: 2007-09-16 [9:40 下午] - Category: 感想
总以为现在写的程序结构是很好了,但是每次听新的老师讲总会体会到实力的差距,于是就再次进化。但是进化也总是片面的,在自以为很深入的了解了oo的模式思想的背景下,总是根据老的思维方式,从来没有好好做下来想想是不是还有更好的架构方式。
这两天的学习体会很大,在进入web框架飞奔实现的我重新回到了command的java的实现中,重新写底层,写ui……哦!
总结的是永远没有最好!好程序就是不断重构得到的!
by agate - Published: 2007-09-13 [8:05 下午] - Category: 程序编码
这几天学习几大框架的整合运用,挺简单的,但是有点搞人耐性……出了一些包啊,tag啊之类的小问题。其中就有这个奇怪的问题,在网上找了些资料贴到这里!
一下引用自"吴星"的MSN空间:
很多人在做webwork+spring+hibernate整合时遇到"严重:Error listenerStart"问题
tomcat启动时报如下错误:
2007-5-31 14:27:13 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2007-5-31 14:27:13 org.apache.catalina.core.StandardContext start
严重: Context [/testWSH] startup failed due to previous errors
有一种解决方案是把web.xml文件中的
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
<listener-class>
<listener>
改为
<servlet>
<servlet-name>SpringContextServlet<servlet-name>
<servlet-class>.....<servlet-class>
<load-on-startup>1<load-on-startup>
<servlet>
但这种方法可能会出现其他问题(网上又说会导致其他文件无法打开)。
最终解决方案如下:
我用的是tomcat5.5,配置了日志之后打印出下列信息:
ERROR main org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
Caused by:
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
at java.lang.Class.getConstructor0(Class.java:2640)
at java.lang.Class.getDeclaredConstructor(Class.java:1953)
……
从日志信息看问题已经很明显了,是applicationContext.xml的dataSource问题。
将
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
改为
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
出现"Error listenerStart"一般是applicationContext.xml中的bean加载有问题。在用eclipse做webwork + spring + hibernate 的项目时一般都是用Myeclipse自动生成那些配置文件,而有些相关的jar<!--[if !supportEmptyParas]-->或者文件并没有加载在至项目中,以至引出奇怪的问题,又因为是自动生成的东西所以往往会忽略一些文件,而问题确恰恰是这些生成的文件所致,所以自动化的东西也未必一定是正确的,呵呵……
org.springframework.jdbc.datasource.DriverManagerDataSource 不可以使用连接池。org.apache.commons.dbcp.BasicDataSource作为注入的DataSource源,为了使用 DBCP的功能,必须要将commons-dbcp.jar加入CLASSPATH中,另外还需要commons-pool.jar和commons- collections.jar,这些都可以在Spring的lib目录下找到。
org.springframework.jdbc.datasource.DriverManagerDataSource并没有提供连接池的功能,只能作作简单的单机连接测试。
使用org.apache.commons.dbcp.BasicDataSource时缺少commons-pool.jar所以会出现如题的问题。
by agate - Published: 2007-09-03 [9:34 下午] - Category: 数据库
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u root -p root > bak_db.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u root -p root users> bak_table.sql
3.导出一个数据库结构
mysqldump -u root -p -d --add-drop-table root >d:\bak_struts.sql
-d 没有数据
--add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
进入mysql数据库控制台
mysql>source d:\bak.sql