欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tomcat 结合 myEclipse 自动加载问题

程序员文章站 2022-06-14 16:09:04
...
完成该项配置后,在myEclipse中,直接启动tomcat,就能访问。
       不用将项目部署到Tomcat的webapps目录下。

在tomcat配置文件里( apache-tomcat-5.5.27/conf/server.xml)
【注意:格式不能变】
<Context 
          path="/myWebapp" 
          docBase="D:\workspace\myWebApp\WebRoot" 
          reloadable="true"
          debug="0"
          crossContext="true"/>

-----------------------------------------------------
path:是虚拟路径,指的是:当前应用的名称(项目名称)
docBase:当前项目(在myEclipse中)的路径
关于:crossContext="true"
设置为true表示在当前虚拟主机可以用ServletContext.getContext()获取servlet的上下文对象。设置为false(或者缺省时)用ServletContext.getContext()总是返回null。

这是官方的解释:
Set to true if you want calls within this application to ServletContext.getContext() to successfully return a request dispatcher for other web applications running on this virtual host. Set to false (the default) in security conscious environments, to make getContext() always return null.


更多参考阅读:
-------------------------------------------------------
-------------------------------------------------------
Tomcat下的appBase和docBase
发表于456 天前 ⁄ 服务器、tomcat ⁄ 评论数 2
<host appBase=”d:/aaa”>
<Context docBase=”d:/aaa/bbb”> </Context>
</host>

我们先看appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用

而docBase只是指向了你某个应用的目录,这个可以和appBase没有任何关系。

总结:
如果你想自己指定路径,那么应该在docBase里面
如果你想简单,那么直接把他们复制到appBase下面就行了

如果你把他们弄重复了,也就是2个指向了一个目录,看上去也能运行,但你的应用下面的每个子目录,其实是被部署为单独的应用的。
比如你的应用为

myApp, 放在了
d:\project\myApp
里面有2个子目录
d:\project\myApp\images
d:\project\myApp\js

你可以通过:
1 设置 appBase 指向 d:\project 来让系统自动部署
2 你可以手工指定docBase到 d:\project\myApp
3 如果你指定了 appBase到 d:\project\myApp 那么
d:\project\myApp\images这个将不再是普通的子目录,而是一个单独的虚拟目录,或者叫应用了。因为其被自动部署
d:\project\myApp\js 也一样的后果



<host>里的appBase,然后在<context>里的docBase,这 两个属性是有联系的,先说一下比较官方的解释:“<Host>元素中的 appBase属性指定了一个路径,该路径将作为嵌套在它里面的<Context> 元素的docBase属性中设置的相对路径的基准路径。”


==============================================================
linux下tomcat服务的相关命令

一:Linux下tomcat服务的启动、关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:
切换到tomcat主目录下的bin目录(cd usr/local/tomcat/bin)
1,启动tomcat服务
方式一:直接启动 ./startup.sh
方式二:作为服务启动 nohup ./startup.sh &
方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务

解释:

    通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止;
    通过方式二可以作为linux服务一直运行。

    通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况;
    通过方式三可以以控制台模式启动tomcat服务,直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括log4j和System.out.println()等输出的信息。

2,关闭tomcat服务
./shutdown.sh


==
问题:
tomcat startup.sh 为什么不输出控制台日志?

查看日志:
看日志在tomcat/logs/catalina.out
命令 tail -f catalina.out


tail命令:
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。

==
Linux下两种自动启动Tomcat的方法:
编辑/etc/rc.d/rc.local 增加内容(假设JDK目录是/usr/jdk,Tomcat目录是/apache/tomcat)
export JDK_HOME=/usr/jdk
export JAVA_HOME=/usr/jdk
/apache/tomcat/bin/startup.sh


这样在系统重启后就可以自动启动Tomcat









-
引用:
linux下tomcat服务的相关命令
http://1234jie.ok.blog.163.com/blog/static/7742699320118184510328/
tail命令:
http://www.2cto.com/os/201111/110143.html
Linux下两种自动启动Tomcat的方法
http://linux.ccidnet.com/art/302/20041217/191565_1.html












-