您的位置:首页 > 运维架构 > Tomcat

Web项目中 Tomcat 与 资源文件的一些处理

2016-01-14 17:57 621 查看
Date 01 14 2016

安装完以后的汤姆猫:嘿嘿

tomcat
-bin
-startup.sh
-shutdown.sh
...
-conf
-server.xml
-tomcat-users.xml
...
-lib
-*.jar
-logs
-*.log
-temp
-Catalina
-localhost
... //
-work
-webapps
-LICENSE
-NOTICE
-RELEASE-NOTES
-RUNNING.txt


需求一:把tomcat管理页面用起来

http://localhost:8080/manager/html

进入这个页面是需要登录的,understand?

come on,加用户去。

进入/tomcat/conf/目录,找到tomcat-users.xml

打开文件,注意到:

<!--
<role rolename="tomcat" />
<role rolename="role1" />

<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->


就是这样定义用户的:

<user username="mine" password="enim" roles="???"/>


roles怎么填呢,一般都是设置的manager-gui,如果你不确定,没关系。

找到文件

/tomcat/webapps/manager/WEB-INF/web.xml

在里面找到

<auth-constraint>...</auth-constraint>


如果有manager-gui,就用这个,其他的script,jmx,status 不必加,可能有的不能加

如果是manager,那就设置rolename=”manager”.

此处用的是manager-gui

<role rolename="manager-gui" />
<user username="mine" password="enim" roles="manager-gui" />


不出意外,这样就行了的

需求二:web项目部署的关于访问图片等资源的位置问题

关于这个问题,先看它是怎么来的吧

摘自:http://www.iteye.com/problems/99461

现在对于上传图片的存放位置有以下问题:

1.如果将文件存放在tomcat中的项目目录下,那么重启清理tomcat后存放图片的目录就会被覆盖掉,导致数据丢失;

2.如果将文件存放到项目workspace目录下,首先是必须刷新项目才能在存放目录下看到图片,导致无法上传图片后立即看到上传效果;其次如果在项目正式部署到服务器上,在下次重新部署新版本的时候我就需要将服务器上用户上传的所有图片copy出来重新放到新的解压后的项目中,以免丢失数据;

3.如果我上传到本地其他磁盘中,那么tomcat出于安全考虑无法获取tomcat以外文件夹的内容(在linux服务器上tomcat是否能够访问暂无实验验证);

4.如果我将图片以二进制的方式存放到数据库中,一旦数据量过大,对数据库将是一大考验,本人暂不推荐这种做法;

5.不想用开源插件,既然插件能够实现,那么在没有必要的情况下可以不考虑引进插件;

哪位大神能够就以上问题提供一些解决思路,十分感激!!

是不是非常苦恼,是的

看了有心人的解答,很欣慰啊。让我们来看看怎么解决吧

问题3:有解决办法

访问的话,配置一个虚拟路径

在tomcat安装好后,只要把你的web项目copy到/tomcat/webapps下面就可以是使用啦!!其实还有种方法就是设定虚拟目录,即把项目的目录映射到tomcat中。

这样就不用重复部署。

怎么配置呢

打开文件 /tomcat/conf/server.xml

在之间加入代码:

<Context path="images" docBase="/home/sy/images" reloadable="false" debug="0" ></Context>


不出意外,localhost:8080/images/xxx.jpg就可以访问/home/sy/images下的图片了。记得重启tomcat哦

如果出现404错误,保证前面的是对的,可能就是在/tomcat/conf/web.xml文件中,把虚拟路径显示目录给禁止了。

打开文件,找到listings 这个param,把对应的false改为true。

再重启tomcat。

远程部署了,/tomcat/webapps/下 项目文件夹为空

其实也不算是大问题

删掉在/tomcat/work/中对应项目的文件夹,再重新部署应该没有什么问题了。

但是,我很疑惑,这是怎么发生的?

Date 01 15 2016

昨天我可以设置虚拟路径访问资源文件,我觉得至少有点进步了。

无奈,下载音频却是无法使用http://localhost:8080/images/flower.jpg这个链接的。

如果你直接使用这个链接另存起来,是下载到本地了。

但是如果是使用Stream传文件,那就不行了。

20160318_修正:

项目部署完毕后,如果不希望直接在浏览器里输入url就可以看到虚拟路径下的目录,记得把tomcat的web.xml中的listings参数设置为false。

随手一记:修改remote url

项目文件夹名# git remote -v

origin 原url

项目文件夹名# git remote set-url origin 新url.

哦克啦。

为什么记不住呢

netstat -anp | grep 1099
kill pid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: