我在eclipse的package explorer的src目录下创建一个xml文件。
正如我们所知道的,一般情况下eclipse的package explorer的src目录下的xml文件来自对应eclipse的workspace下的对应工程的src目录下的对应文件,这很好理解。如图:
当开启tomcat后,workspace/项目名/src下的那个xml文件也会布局到tomcat目录下的WEB-INF目录下。
此时,在修改eclipse的package explorer的src目录下的xml文件的内容时,tomcat目录下对应的文件内容就会同步。
但是,通过服务器的活动修改tomcat目录下的xml文件,或者手工打开tomcat目录下的xml文件进行修改后(尽管很多人都不会这么做),eclipse的package explorer的src目录的xml文件一般是不会自动同步的。
很多人忽略了这一点:修改的只是tomcat目录下的xml,而eclipse的package explorer的src目录的对应xml其实并没有改变,重新加载tomcat后,eclipse的package explorer的src目录的xml上的就还会覆盖tomcat目录下的xml一次,最终就会导致数据的丢失。
比如假如eclipse的package explorer的src目录的xml内容写的是A,开启tomcat后,tomcat文件夹对应的xml内容也加载为A。然后我把tomcat文件夹对应的xml的内容改为B,然而eclipse的package explorer的src目录的xml内容不会自动同步为B仍然是A。然后我重新将工程布局到tomcat,tomcat文件夹对应的xml的中的内容就会用A覆盖B,导致刚才B的数据失去了。
有人说eclipse的package explorer的src目录的文件和eclipse的workspace/工程名/src下的文件不是同一个文件吗?
我觉得其实不是。
如果手工修改eclipse的workspace/工程名/src的xml文件,比如我增加了红色圈住的那行代码并且保存
然后回到eclipse会看到:
你点击YES的话,自然会把workspace/工程名/src的xml文件内容同步到eclipse里面
但是你点击NO的话
eclipse中的内容就不会同步,并且可以在编辑器中保存(看到左上角users.xml的左边没有*吗?这说明我在eclipse已经按下了ctrl+s保存,是可以保存的)
所以此时eclipse显示的内容应该是存在内存中,而不与硬盘中workspace的对应文件的内容相同了
不过右键eclipse的package explorer的src目录下的项目选择refresh就能让eclipse编辑器显示的xml文件内容向workspace的对应文件的内容同步了
初学java,抱着学习的心态;不正之处,请多指正!