区别对待 【找到问题发生的原因】 以及 【关于这个问题的 「正确可行」 的解决方法】
在我们工作中,常常会发现一些问题,
当我们调查并找到这个问题的原因后,
常常会非常高兴,
然后不假思索,找了一种方式,就把这个问题解决了。
但是,我们并没有仔细去思考一下,
我们的这种解决方式是否合适,正确。
总结:
出现问题后,出现问题后,发现只是第一步。
之后,我们要找到正确的解决方案。
----------------------------------------------------
----------------------------------------------------
下面举出一个例子:
为了方便以下阅读,列出tomcat的目录结构
webapps
pages
WEB-INF
classes
conf
struts
valitator
http
blogicIO
lib
tld
【问题发生的原因】:
昨天配置新的环境,其中MB工程下,WEB-INF下面的一些文件是引用PC端的代码。
引用代码这种方式,虽然在workspace中可以看到,
但是在实际目录中是没有的。
(WEB-INF下面的一些tld文件 以及电文的xml配置文件。
这些文件不同于共通引用的java文件,java文件会在编译之后,
生成class文件,放入WEB-INF classes目录中。
而这些tld xml的配置文件不会被编译,实际目录中也没有,
因而,tomcat无法找到这些文件。)
以上就是问题的原因。
--------------------------------------------
【发现问题之后的解决方法 (这种解决方式 有些问题)】
在目录下建立文件映射文件的文件夹,
把实体文件放入其中!
【问题】
但是这种解决方案存在一些问题,
当你对这些目录下的文件进行开发时,
无法及时取得最新版本!
【关于这个问题的 「正确可行」 的解决方法】
第一步: 在classpath文件中增加以下配置
<classpathentry excluding="**/cvs/*"
kind="src"
output="x_ut_webapps"
path="webapps"></classpathentry>
( excluding 除...之外)
通过以上这种方式,就可以把所有的文件都反映到x_ut_webapps
在相应的文件夹中,可以看到所有的实体文件。
第二步:修改classes文件的出力位置,使之出力到x_ut_webapps下
修改前:<classpathentry
kind="output"
path="webapps/WEB-INF/classes"></classpathentry>
修改后:<classpathentry
kind="output"
path="x_ut_webapps/WEB-INF/classes"></classpathentry>
第三步:修改配置文件中,之前使用过x_ut_webapps的地方
第四步
确保第三步修改的配置文件,
在 x_ut_webapps 下面的配置文件中的内容也是正确的