eclipse下web开发 (配置)文件同步更新到服务器上

来源:互联网 发布:c语言万能头文件 编辑:程序博客网 时间:2024/04/28 20:56

最近需要做一个web方面的文件上传的Demo.开发工具是eclipse[具体名称:Eclipse IDE for Java EE Developers 版本:2.0.0.20130613-0530].使用struts2[struts2-core-2.3.15.1.jar]

[错误1]

[console提示]org.apache.struts2.dispatcher.Dispatcher errorSEVERE: Dispatcher initialization failedUnable to load configuration. - action - file:******/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/******/WEB-INF/classes/struts.xml:**:**

[原因]struts.xml文件中的class属性配置错误,对应的action的处理类错误。

[错误的解决办法]修改工程中的struts.xml.这种方法有时候有效,但有时候不起作用,几乎能把人搞疯掉(对debugging中的coder最痛苦的事情,就是这种“不可再现”的错误!)。产生这种错误的原因是由于eclipse的在进行web开发时的机制导致的。用eclipse进行web开发时,你所编辑的工程中文件并不是调试或运行时的文件。在调试或运行时的文件,eclipse用的是路径“eclipse的workspace的目录/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/工程名”下面的文件!struts.xml文件在该目录的“WEB-INF/classes/struts.xml”路径下!即eclipse的修改的同步机制是一个不确定因素!

[正确的解决办法]

1.直接编辑eclipse调试或运行时所用的文件,即web工程发布所用的文件。[这种办法比较可靠,但是笨拙]。

2.改进eclipse的web开发的修改与发布的文件同步策略。在这里,具体就是如何使eclipse的struts.xml修改后生效的机制可控(rebuild工程?重启tomcat?或是重启eclipse? 我测试过这几种做法,好像都没有确定性,即有时候可以有时候不可以[coder最讨厌的东东]).我在网上找了好久都没找到比较好的解决方案。

3.开启struts2自带的开发模式常量(这也不一定好使)
在以前的开发中,当修改一些配置时总是不能及时地更新到服务器,我们总会重新部署或重启来更新改变的内容,在struts2中可以通过一个常量来达到此目的。即在struts.xml中的<struts>元素下增加如下内容:
<constant name="struts.configuration.xml.reload" value="true" />
这样配置后,当配置文件修改保存时就会及时更新到服务器中。

4.最可靠的方法:把工程发布到服务器,启动服务器(很关键),再在project菜单中选中clean选项


对这个问题的总结:
关键词:设计模式;模块化
struts.xml文件修改后是否要及时更新到服务器上,这即属于struts自身的范围[开发者需要自己决定],也属于tomcat服务器的范围[因为tomcat是一个运行平台],但是不属于eclipse的设计需要考虑的[eclipse只是一个开发工具],这是从软件设计的思想方面得出的.

原创粉丝点击