我上传了个文件到tomcat的webapp下,然后我重新部署tomcat的时候发现上传的那个文件没了,我查了资料也明白为什么没有因为原工程中没这文件,所以重新部署的时候把刚上传的文件给删了,解决办法是弄虚拟目录 ,求解释怎么弄?
------解决方案--------------------
这个没有办法弄虚拟目录吧?因为就算虚拟目录你还是只能访问tomcat啊,我们现在做的是发布项目之前先把那个文件夹剪切出来,然后新项目发布以后再剪切回去,覆盖原来的,虽然有点笨,但是可以解决!
------解决方案--------------------
1L这个可以解决
不过也可以弄虚拟目录
------解决方案--------------------
部署项目到tomcat,千万别在MyEclipse中点来点去的部署,具体步骤如下:
(1),清空 D:\Program Files\Tomcat 6.0\webapps\ 目录下的所有文件和文件夹
(2),清空 D:\Program Files\Tomcat 6.0\logs\ 目录下的所有文件
(3),清空D:\Program Files\Tomcat 6.0\temp\ 目录下的所有文件
(4),清空D:\Program Files\Tomcat 6.0\work\Catalina\localhost\ 目录下的所有文件和文件夹
(5),修改D:\Program Files\Tomcat 6.0\conf\web.xml 文件:
false改为true
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
(6),修改D:\Program Files\Tomcat 6.0\conf\ server.xml 文件:
在<Host>节点中给工程项目配置虚拟路径,工程项目的web根目录的物理路径中不允许出现中文和空格,否则tomcat无法解析:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<!----><Context path="/deco" docBase="E:\lft\deco\WebRoot"></Context>
<!--<Context path="/sendXfire" docBase="D:\project\other\xfire\sendXfire\WebRoot"></Context>-->
<!--<Context path="/ser" docBase="D:\project\myProject\editor\WebRoot"></Context>-->
<!--<Context path="/designer" docBase="D:\project\company\designer\WebRoot"></Context>-->
<!--<Context path="/work" docBase="D:\project\myProject\store\web"></Context>-->
<!--<Context path="/mvc" docBase="D:\project\myProject\area\WebRoot"></Context>-->
</Host>
------解决方案--------------------
就算你的那个文件不改了,放上去就定了,那你就直接指定一个盘符的目录建文件夹,到时候直接读就是了。要不就是直接在你的项目根目录建文件夹存放,但是你要改动里面的东西同样要自己手动去。
把你的思维定势换一下,不就传东西上去再显示么,项目里加个上传的地方传到指定目录里,在读出来显示不就完了,别再在这里绕了,6L说的那两个路径对你的问题而言没有任何用处,我再给你加一个路径,都告诉你:
<Context path="/lc" reloadable="true" docBase="E:\workspace\lc\webapp" workDir="E:\workspace\lc\work" />
path是你的项目访问路径,docbase是你的项目发布路径,workdir是你的项目临时文件存放路径,前两个路径你可以自己取名字,不一定非要是webapp,最后那个路径的work目录项目运行起来后自动建立的,你只需要制定到你的项目根目录即可,再给你一个做参考:
<Context path="/cas2" reloadable="true" docBase="E:\workspace\cas_saml\cas2" workDir="E:\workspace\cas_saml\work">
所以你就按照前面的人说的方法在服务器上建好目录自己管理,闲麻烦就在项目里加个上传删除的维护功能,也花不了多少时间。