文档章节

tomcat中部署程序,不是通过Eclipse或者myeclipse中的add

BabyMason
 BabyMason
发布于 2015/02/06 15:28
字数 3226
阅读 115
收藏 0
看一下server.xml,conf/localhost/,web.xml是否配置了其他的WEBAPP应用,但实际地址已经被移除,清空WORK目录试试



http://blog.163.com/mouse_lb/blog/static/6945620067863934935/



http://zhidao.baidu.com/question/165259640.html


http://www.newsmth.net/pc/pccon.php?id=10003032&nid=402938

tomcat中三种部署项目的方法
第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: 
<Context path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" debug="0" privileged="true"> 
</Context> 
至于Context 节点属性,可详细见相关文档。 

第二种方法:将web项目文件件拷贝到webapps 目录中。 

第三种方法:很灵活,在conf目录中,新建 Catalina(注意大小写)\localhost目录,在该目录中新建一个xml文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,该xml文件的内容为: 
<Context path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" debug="0" privileged="true"> 
</Context> 

第3个方法有个优点,可以定义别名。服务器端运行的项目名称为path,外部访问的URL则使用XML的文件名。这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。 

第2、3还有优点,可以定义一些个性配置,如数据源的配置等。 

还有一篇 详细的 

此处主要讲述Tomcat部署发布JSP应用程序的三种方法 
    1、直接放到Webapps目录下 
     Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。也可以将JSP程序打包成一 个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个Web 程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse、NetBeans、ant、JBuilder等。也可 以用 cmd 命令:jar -cvf applicationname.war package.*; 
甚至可以在程序执行中打包: 
try{ 
string strjavahome = system.getproperty("java.home"); 
strjavahome = strjavahome.substring(0,strjavahome.lastindexof(\\))+"\\bin\\"; 
runtime.getruntime().exec("cmd /c start "+strjavahome+"jar cvf hello.war c:\\tomcat5.0\\webapps\\root\\*"); 
}  
catch(exception e){system.out.println(e);} 

     webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容: 
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeloy="true" xmlValidation="falase" xmlNamespaceAware="false"> 

   2、在server.xml中指定 
     在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。 
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/> 
     其中path是虚拟路径,docBase是JSP应用程序的物理路径,workDir是这个应用的工作目录,存放运行是生成的于这个应用相关的文件。 

   3、创建一个Context文件 
     以上两种方法,Web应用被服务器加载后都会在Tomcat的conf\catalina\localhost目录下生成一个XML文件,其内容如下: 
<Context path="/admin" docBase="${catalina.home}/server/webapps/admin" debug="0" privileged="true"></Context> 
可以看出,文件中描述一个应用程序的Context信息,其内容和server.xml中的Context信息格式是一致的,文件名便是虚拟目录名。您可 以直接建立这样的一个xml文件,放在Tomcat的conf\catalina\localhost目录下。例子如下: 
注意:删除一个Web应用同时也要删除webapps下相应的文件夹祸server.xml中相应的Context,还要将Tomcat的conf 
\catalina\localhost目录下相应的xml文件删除。否则Tomcat仍会岸配置去加载。。。



http://blog.163.com/mouse_lb/blog/static/6945620067863934935/

设置servlet随webapp启动而启动
2006-08-08 18:39:34|  分类: java|字号 订阅
缘由:主要是方便在webapp启动时提前做一些初始化工作

1. 配置web.xml
添加如下:
<servlet>
        <servlet-name>ServletInit</servlet-name>
        <servlet-class>xx.xx.xx.xx.ServletInit</servlet-class>
        <!-- 
            定义初始化参数
            在ServletInit使用String debug = getServletConfig().getInitParameter("debug");获取
        -->
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <!--
            关键:设置该servlet随webapp启动
            2代表毫秒,即webapp启动2毫秒后启动此servlet
        -->          
        <load-on-startup>2</load-on-startup>
</servlet>

2. 
public class ServletInit extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
       // 使用config.getInitParameter(param-name)获取初始化参数
       // 初始化
    }

    public void destroy() {
       // 做一些webapp退出时的工作
    }
}

在初始化读取配置文件时还遇到一个问题,init函数会调用其他类的方法,当程序执行到其他类的方法
时,找不到当前目录下的配置文件,后来才发现servlet在随tomcat启动后,当前路径已经变成了tomcat
安装目录的bin了,所以找不到配置文件了,后来经人指点只要在init函数里加入:
       ServletContext sc = config.getServletContext();
       // 获取当前绝对路径
       String rootPath = sc.getRealPath("/");
这样一来,rootPath是tomcat部署此webapp的路径,假设tomcat安装目录记为$TOMCAT,其目录结果如下:
$TOMCAT
    bin/
    common/
    conf/
    其他目录/
    webapps/
       myOwnApp/
          conf/
          WEB-INF/
          其他/
那么rootPath为"$TOMCAT/webapps/myOwnApp/",这样不管此app部署到哪里都能找到此目录下的conf配置文件。

对于jsp也有一个类似的函数:String root_path = application.getRealPath("/");



http://blog.csdn.net/yangxueyong/article/details/6130065


http://blog.csdn.net/yangxueyong/article/details/6130065


Tomcat部署Web应用方法总结
分类: Java web2011-01-11 23:12 634人阅读 评论(0) 收藏 举报
Tomcat部署Web应用方法总结
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。
在下文中$CATALINA_HOME指的是Tomcat根目录。
一、静态部署
静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。
以下3种方式都可以部署:(以PetWeb项目为例说明,PetWeb目录假设是F:/PetWeb)
1.利用Tomcat自动部署
将PetWeb目录拷贝到$CATALINA_HOME/webapps下,然后启动服务器就可以了,Tomcat启动时将自动加载应用。
访问地址如下:http://localhost:8080/PetWeb/
这种方式比较简单,但是web应用程序必须在webapps目录下。Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。
2.修改Server.xml文件部署
这种方式可以不必将PetWeb目录拷贝到webapps下,直接在F:/部署。方法如下,更改$CATALINA_HOME/conf/server.xml文件,
找到以下内容:
Xml代码:
<Context  path ="/Pet"  reloadable ="false"  docBase ="F:/PetWeb"  workDir ="d:/Mywebapps/emp"  />
path:是访问时的根地址,表示访问的路径;如上述例子中,访问该应用程序地址如下:http://localhost:8080/Pet/
reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包。其中reloadable="false"表示当应用程序 中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。
docbase:表示应用程序的路径,注意斜杠的方向“/”。 docBase可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。
workdir:表示缓存文件的放置地址
3.增加自定义web部署文件(推荐使用,不需要重启Tomcat )
这种方式和方法2差不多,但不是在Server.xml文件中添加Context标签,而是在$CATALINA_HOME/conf /Catalina/localhost中添加一个xml文件,如Pet.xml.在Tomcat安装目录conf/Catalina /localhost下,里面有Tomcat自带的三个应用,随意复制其中的一个XML文件,然后修改docbase指向你自己的应用程序,并把文件名改 名,各参数参见方法2中的<Context>标签的参数,或者你也可以自己新建一个XML文件。(注意此文件名将作为Context中的path属性值,不管文件里的path属性值如何设置也是无效的 ),将以下内容复制过去,修改相应路径即可。
Xml代码:
<Context  path ="/Pet"  docBase ="F:/PetWeb"  
        debug ="0"  privileged ="true"  reloadable ="false"  >  
</Context>
访问地址如下:http://localhost:8080/Pet/  
 
 
注: Web应用以.war文件的形式部署
可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。
我们刚才是将PetWeb文件夹部署在了服务器中,我们知道可以将Web应用程序的内容打成.war 包,然后在部署在服务器上。打包请参考如下步骤: 
    1、打开命令提示符(cmd) 
    2、设置jdk环境变量  
    3、在命令提示符中进入项目文件夹F:/PetWeb后,键入如下命令:jar cvf Pet.war */ .   (注意最后有个“.”)。这样在F:/PetWeb下应该有Pet.war文件。 (也可以打包到指定的地方,命令如下:jar cvf d:/Pet.war */ .)
部署Pet.war文件非常简单,将刚才xml文件中的docBase ="F:/PetWeb" 更改为docBase ="F:/Pet.war" 或者直接将其拷贝到webapps目录下就可以。然后重新启动服务器就可以将Pet.war部署为一个Web应用程序了。
如果你够细心的话你会发现,服务器将Pet.war文件解开,并且在webapps下面又生成了一个Pet文件夹,然后把Pet.war的内容拷贝到里面去了。我们可以通过以下方式取消自动解压缩,将xml配置文件中的unpackWAR 属性设置为"false" 即可。
 
 
二、动态部署
动态部署是指可以在服务器启动之后部署web应用程序,而不用重新启动服务器。动态部署要用到服务器提供的manager.war文件,如果 在$CATALINA_HOME/webapps/下没有该文件,你必须去重新下载tomcat,否则不能完成以下的功能。要想使用该管理程序必须首先编 辑$CATALINA_HOME/conf/tomcat-users.xml文件,内容如下:(关于这个文件的更多内容,请参考 Java Web应用程序的安全模型二 )
<tomcat-users> 
<role rolename="tomcat"/> 
<role rolename="role1"/> 
<role rolename="manager"/> 
<user username="coresun" password="coresun" roles="manager"/> 
<user username="tomcat" password="tomcat" roles="tomcat"/> 
<user username="both" password="tomcat" roles="tomcat,role1"/> 
<user username="role1" password="tomcat" roles="role1"/> 
</tomcat-users>

然后在浏览器中键入如下地址:http://localhost:8080/ ,应该看到一个加菲猫了吧。点击左边的Tomcat Manager链接,提示输入用户名和密码,本文都是coresun ,然后可以看到以下页面:
(1)Context Path(option): 中输入/Pet

(2)XML Configration file URL 中要指定一个.xml文件,比如我们在F:/下建立一个Pet.xml文件,内容如下:<Context   reloadable ="false" / > 。docBase 不用写了,因为要在下一个文本框中填入。或者更简单点,这个文本框什么都不填。

(3)WAR or Directory URL: 中键入F:/PetWet或者F:/Pet.war都可以,然后点击Deploy按钮,看看上面是不是已经看到了你web应用程序,名字就是你Context Path(option):中的名字。

(4)如果你部署.war文件还有更加简单的方式,下面还有个Select WAR file upload 点击浏览选择.war文件,然后点击Deploy也可以。
让tomcat只运行conf/server.xml中指定的web应用
可以有以下2种办法:
实现一: 
1)将要部署的WEB应用放在webapps以外的路径, 并在server.xml相应的Context  中的docBase 指定. 
2)删除webapps中的所有文件夹, 以及conf/catalina/localhost下所有xml文件. 
注: webapps是server.xml中的Host  元素的appBase 属性的值.
实现二: 
修改server.xml中Host  元素的属性, 添加或修改: deployXML ="false" deployOnStartup ="false" autoDeploy="false"
含义: 
     deployXML ="false" : 不部署conf/catalina/localhost下的xml相应的WEB应用
     deployOnStartup ="false" :tomcat启动时, 不部署webapps下的所有web应用
     autoDeploy ="false"  :避免tomcat在扫描改动时, 再次把webapps下的web应用给部署进来.
注:
Tomcat中webapps目录下不能直接存放网页格式的文件,否则无法访问到该文件,必须有子目录才能访问该网页文件。
例如:我们直接将index.html放在webapps目录中,通过浏览器http://localhost:8080/index.html 是无法访问到index.html的。而必须要webapps/petweb/index.html才可以通过http://localhost:8080/petweb/index.html 访问到index.html页面。
【综合参考转自如下文章 】
1.http://lukas06.blog.sohu.com/112367177.html     Tomcat 部署Web应用
2.http://blog.csdn.net/jierui001/archive/2009/05/11/4168872.aspx    tomcat部署web应用的三种方式
3.http://ericxu131.javaeye.com/blog/175831     在Tomcat中部署java Web应用程序(转)
4.http://secyaher.blog.163.com/blog/static/3895577200781495722337/    将项目打包成War文件及在TomCat布署


© 著作权归作者所有

BabyMason
粉丝 28
博文 31
码字总数 15527
作品 0
郑州
程序员
私信 提问
关于m2eclipse插件在myeclipse 及其以后版本的问题及终极解决办法!

关于m2eclipse插件在myeclipse9 及其以后版本的问题及终极解决办法!关于maven-archetype-webapp 新建 maven webapp 无法直接在tomcat中部署的问题的解决方案 首先请注意,本文不配图 如果你...

撒旦他舅爷
2013/07/15
6.1K
0
将Maven2项目转为MyEclipse项目

现在项目中,大家开始用jetty。它不用像在MyEclipse中使用Tomcat那样要部署,也不用像在Tomcat中那样,要把应用都放到webapp文件夹下。jetty可以直接用你的项目的目录结构。 我们在用maven的...

随智阔
2013/11/20
78
0
将Maven2项目转为MyEclipse项目

现在项目中,大家开始用jetty。它不用像在MyEclipse中使用Tomcat那样要部署,也不用像在Tomcat中那样,要把应用都放到webapp文件夹下。jetty可以直接用你的项目的目录结构。 我们在用maven的...

鉴客
2011/10/11
4.6K
1
MyEclipse教程:Web开发——部署和测试Web项目

MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。用户还可以获得要检查的示例项目。在本教程中,用户将学习如...

电池盒
2018/12/17
19
0
MyEclipse中文教程与使用技巧倾情分享

MyEclipse是基于Eclipse平台的智能IDE,作为最实惠、综合全面的J2EE IDE与Web开发工具套件,MyEclipse一直受到Java开发者的青睐。 MyEclipse 既然是IDE工具,那么就有自己独特的使用方法,现...

kouxunli1
2014/11/04
144
0

没有更多内容

加载失败,请刷新页面

加载更多

在JavaScript中将数字转换为字符串的最佳方法是什么?

将数字转换为字符串的“最佳”方法是什么(就速度优势,清晰度优势,内存优势等而言)? 一些例子: String(n) n.toString() ""+n n+"" #1楼 如果需要将结果格式设置为特定的小数位数 (例如...

javail
25分钟前
111
0
51单片机中断学习

一、中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原...

demyar
27分钟前
97
0
创龙TI KeyStone C66x多核定点/浮点DSP TMS320C665x 的拓展IO信号、FMC接口

广州创龙结合TI KeyStone系列多核架构TMS320C665x及Xilinx Artix-7系列FPGA设计的TL665xF-EasyEVM开发板是一款DSP+FPGA高速大数据采集处理平台,其底板采用沉金无铅工艺的6层板设计,适用于高...

Tronlong创龙
28分钟前
90
0
理解虚拟网络

概念 TUN/TAP,veth

认真即可
34分钟前
162
0
聊聊artemis的ServerConnectionLifeCycleListener

序 本文主要研究一下artemis的ServerConnectionLifeCycleListener BaseConnectionLifeCycleListener activemq-artemis-2.11.0/artemis-core-client/src/main/java/org/apache/activemq/artem......

go4it
35分钟前
111
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部