前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tomcat部署war包,jar包

tomcat部署war包,jar包

作者头像
全栈程序员站长
发布2022-09-05 14:45:00
3.8K0
发布2022-09-05 14:45:00
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

在tomcat根目录下部署war包,通过http://ip:port的方式访问

网上说的方法很多,这里记录一下自己的经过实践检验的一种方法。 1、先去tomcat/conf/server.xml里 有一个HOST标签,有个参数appBase,表示你的应用应该部署在什么位置。例如下面写的是webapps,那就在webapps/ROOT/路径下解压你的war包。如果appBase=XXX,那么就在XXX/ROOT/路径下解压war包

代码语言:javascript
复制
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

2、运行tomcat/bin/startup.bat

如果要通过http://ip:port/appName的方式访问 1、在前面说到appBase的基础上,新建appBase/appName/路径,将war包解压到appBase/appName/下 2、运行tomcat/bin/startup.bat

这里记一下虚拟路径的操作 HOST标签下新增如下代码 docBase是具体的文件目录,path是url中的地址,tomcat会做自动映射

代码语言:javascript
复制
<Context docBase="D:/docs" path="/resources" reloadable="true" debug="0"/>

2018-01-03更新 今天碰见一个问题,启动部署在root下的tomcat项目,访问项目中的一个url路径/manager/XXX一直显示404。但是这个url在其他人的tomcat上能够访问。 最后发现是在root路径同级有个自带的manager路径,访问到了那个manager路径下,那个manager路径下没有我请求的url,所以404了。 把那个manager改了个名字就能正常访问了

2018-03-07更新 今天碰见个问题,前端请求的参数带有中文,但是到了服务器端,日志打印出来的又都是乱码。 应用的web.xml中也配置filter

代码语言:javascript
复制
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern> </filter-mapping>

然后在tomcat的conf/server.xml配置文件中改了东西,增加了useBodyEncodingForURI=”true”

代码语言:javascript
复制
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI="true" />

20180504更新 部署jar包应用,可以写一个shell脚本

代码语言:javascript
复制
nohup /opt/jdk1.7.0_76/bin/java -jar -Xms1024m -Xmx1024m -Dspring.profiles.active=test -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10086 /XXX/test.jar > /XXXX/nohup.out 2>&1 &

启动参数说明:XXX是路径,10086是远程debug的端口,Xms,Xmx堆大小

20180529更新 在一片白纸的linux上安装tomcat,然后telnet了一下,telnet localhost 8080,没有返回Connection refused,而是返回了No route to host。 查了下资料,Connection refused一般来说是端口没有监听,No route to host是防火墙没有打开特定端口。说明链接:https://blog.csdn.net/bisal/article/details/44731431 如果想开放端口,例如8080 1) vi /etc/sysconfig/iptables 进入编辑增添一条-A INPUT -p tcp -m tcp –dport 8080 -j ACCEPT 即可 2)iptables -I INPUT -p tcp –dport 8080 -j ACCEPT

然后

代码语言:javascript
复制
service iptables save
systemctl restart iptables

但是有可能出现Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory. 具体可以参考:https://blog.csdn.net/c233728461/article/details/52679558。我用的是文章中第二种传统管理方式 一顿操作猛如虎,再telnet,应该就差不多了,因为应用没有部署,没有监听8080。

代码语言:javascript
复制
telnet localhost 8080
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying ::1...
telnet: connect to address ::1: No route to host

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135609.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月4,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档