在linux上的Tomcat服务器上部署java项目

在tomcat上部署java项目本来觉得挺简单的,但是遇到若干问题,总结下。

1、启动时候报错

 JSR 356 WebSocket (Java WebSocket 1.1) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocket JARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available. 

这个不影响启动项目

2、启动报错Cannot run program。。。 Permission denied

网上说:

tomcat启动报错Cannot run program "/Users/horse_leo/Documents/apache-tomcat-7.0.75/bin/catalina.sh" (in directory "/Users/horse_leo/Documents/apache-tomcat-8.0.18/bin"): error=13, Permission denied

从英文可以看出是权限不足,

解决办法,命令行进入tomcat的bin根目录,执行chmod 777 *.sh问题解决

修改后ok

3、shutdown.sh结束不了

ul 06, 2017 10:57:37 AM org.apache.catalina.startup.Catalina stopServer

SEVERE: Could not contact localhost:8005. Tomcat may not be running.
Jul 06, 2017 10:57:37 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop: 
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at java.net.Socket.connect(Socket.java:528)
        at java.net.Socket.<init>(Socket.java:425)
        at java.net.Socket.<init>(Socket.java:208)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:450)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:400)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:487)


网上说

这个问题是Tomcat内存导致的,可以修改下Tomcat内存,切换到bin目录下面,使用

vi catalina.sh

修改catalina.sh文件,在位置cygwin=false前,插入以下内容

JAVA_OPTS="-Xms512m -Xmx1024m -Xss2048K -XX:PermSize=256m -XX:MaxPermSize=512m" 

 重启Tomcat即可。

但是我修改了后依然有这种问题,

ps -ef|grep 端口号 发现没有进程再跑,于是知己启动ok,没有再跑,说明tomcat已经停了

4、修改tomcat访问端口号

    修改 conifg下的server.xml,为避免和别的服务器冲突,涉及到的端口号都需要该

5、修改tomcat的访问应用地址

    正常情况下,tomcat默认访问的是webapps下的项目,在server.xml中如下

    <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

如果你想让tomcat访问本目录下的项目,修改appBase即可,如果是加载tomcat以外的项目,需要config下的Catalina下的host中添加一个xml,记录你的项目地址

<Context path="/bllweb" docBase="/app/tomcats/wl_bllweb/bllweb" reloadable="true" />

当然,网上也说可以在server.xml中直接增加

    <Context path="" docBase="$Tomcat/webapps/ROOT" />

但是我没试不知道是否正确

我修改了  <Context path="" docBase="myapp" />因为没有app文件所项目启动不报错,但是却启动不起来。

解释下:

这个里面的name表示的是访问本地的localhost地址,appBase表示项目指定的父位置;path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值