Linux上的Tomcat地址映射,且404错误解决
问题:现在想要加一个下载文件功能,但是文件地址不在tomcat的webapps下,需要通过地址映射到tomcat下面再通过链接执行下载文件功能。
解决方法有两种:
方法一:
用方法一的前提是不用启动服务器(因为我不是在windows上面执行操作,而是在linux上面的服务器上面进行文件地址映射),否则通过方法一只是重启tomcat,而不重启服务器就会出现404错误。
方法:找到tomcat-conf-server.xml文件打开,在文件最后Host添加如下<Context />中的代码:(红色的代码是新添加的代码)
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"> <!-- 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
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/txt" docBase="/data/txt" reloadable="true" crossContext="true"/> </Host>
含义:若windows中访问localhost:8080/txt/1.txt其实访问的就是D:/data/txt/1.txt文件,也就是说文件实际存放地址是docBase=D:/data/txt/1.txt,浏览器访问地址是path...
若Linux中类似,也就是访问http://39.xxx.xxx.xxx:18010/txt/1.txt,其实访问的就是Linux服务器中的docBase中的文件,这个docBase可以是相对地址也可以是绝对地址。
我是在Linux服务器上进行地址映射的,若改动配置文件,那么仅仅重启tomcat是不行的,需要重启整个服务器才可以,但是服务器上运行东西较多,所以此方法不合适。由此使用方法二。
(令记录下tomcat在服务器上重启的方法:
命令行cd 路径到tomcat/bin 下,执行shutdown.sh是关闭的,之后在执行startup.sh是开启的
//退出路径
cd ..
//进入路径
cd tomcat/bin
//执行文件
./shutdown.sh
./startup.sh
)
(令无意发现若配置tomcat/conf/web.xml,则浏览器打开文件夹时会显示文件列表,否则会报404找不到文件的错误。
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把false改为true,就可以了)
方法二:
此方法不需要启动服务器,也是在linux上操作的。
方法:在tomcat/conf/Catalina/localhost文件夹下新建upload.xml文件(路径不全的新建文件夹补全),写如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/data/txt" reloadable="true"></Context>
含义:若Linux中访问http://39.xxx.xxx.xxx:18010/upload/1.txt其实访问的就是data/txt/1.txt文件,也就是说文件实际存放地址是docBase=data/txt/1.txt,浏览器访问地址是新建xml的文件名upload...
注:不知什么原因,经过方法二之后文件是可以打开的,但是经过一段时间之后出现404找不到文件的错误,百度了好久都未果,最后重新改一下upload.xml文件名为in.xml,就可以打开文件了,而且可以再换回upload.xml,之后再打开文件就可以了。
最后,我是为了下载文件功能的,有些方法比如window.open方法直接打开文件而不是下载文件,这个是由于浏览器原因,并且要把项目发布到服务器上,我用谷歌就可以下载文件了。
Linux上的Tomcat地址映射,且404错误解决的更多相关文章
- linux上备份Oracle时EXP-00091的错误解决方法
unix/linux上备份Oracle时EXP-00091的错误解决方法 unix/linux上备份数据时的错误解决方法 EXP-00091: Exporting questionable stati ...
- eclipse里访问tomcat首页出现404错误解决之法
首先,添加Tomcat.在菜单栏找到Window—Preferences—Server—Runtime Environments—Add—Apache—选择Tomcat版本—找到Tomcat文件的路径 ...
- linux上监控tomcat down掉后自动重启tomcat
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- 转载:JProfiler远程监控LINUX上的Tomcat过程细讲
来源于xuwanbest的博客 所谓"工欲善其事,必先利其器",好的工具确能起到事半工倍的作用.我用到的最多的就两个JConsole 和JProfiler .JConsole监 ...
- IIS7下swfupload上传大文件出现404错误
要求上传附件大小限制在2G,原本以为可以轻松搞定.在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. error错误. ...
- 记一个菜鸟在Linux上部署Tomcat的随笔
以前都只是在园子里找各种资料.文档.各种抱大腿,今天是第一次进园子里来添砖加瓦,实话说,都不知道整些啥东西上来,就把自己在Linux上搭建Tomcat的过程记录下来,人笨,请各位大虾们勿喷. 虽然做开 ...
- JConsole监控Linux上的Tomcat
JConsole监控Linux上的Tomcat 从Java 5开始引入了 JConsole,来监控 Java 应用程序性能和跟踪 Java 中的代码.jconsole是JDK自带监控工具,只需要找到 ...
- 在linux上部署tomcat服务
在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...
- 在Linux上安装tomcat和JDK
1.tomcat的安装 a.#cd download(进入download文件夹) b.#wget http://111.23.5.142:82/mirrors.hust.edu.cn/apache/ ...
随机推荐
- Python--day63--添加书籍和修改表结构的注意事项
- 模板——伸展树 splay 实现快速分裂合并的序列
伸展操作:将treap中特定的结点旋转到根 //将序列中从左数第k个元素伸展到根,注意结点键值保存的是原序列id void splay(Node* &o, int k) { ] == NULL ...
- H3C 以跳数评估的路由并非最优路径
- 解析PHP跳出循环的方法以及continue、break、exit的区别介绍
本篇文章是对PHP跳出循环的方法以及continue.break.exit的区别进行了详细的分析介绍,需要的朋友参考下 PHP中的循环结构大致有for循环,while循环,do{} while 循 ...
- H3C 静态路由配置
- 程序员必备神器(FastStoneCapture)
工欲善其事,必先利其器. 作为程序员,如果我们不知道如何制作动态图或者快捷录屏.录视频等,会给人一种身怀不技的感觉:好!屁话少说,接下来我会废话连篇的介绍一款神器--------那就是FastSton ...
- 【31.95%】【CF 714B】Filya and Homework
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- 【47.40%】【BZOJ 1875】[SDOI2009]HH去散步
Time Limit: 20 Sec Memory Limit: 64 MB Submit: 1363 Solved: 646 [Submit][Status][Discuss] Descript ...
- vue-learning:19 - js - filters
filters 基本使用 仅限在插值{{}}和v-bind指令中使用 管道符|分隔 链式调用 传入参数 全局注册和局部注册 纯函数性质(不能使用this) 基本使用 我们看下之前用计算属性实现的例子, ...
- umask 设置
背景: 有时候需要在linux上从其他人的目录里copy文件过来. 最近遇上的事情很麻烦,就是copy的时候发现很多文件copy不过来,copy一个文件夹时,当前文件把权限修改了,结果子目录的中的还没 ...