tomcat 2-- 关于一些部署启动问题和403问题的查询记录

来源:互联网 发布:实用新型专利 软件 编辑:程序博客网 时间:2024/05/18 03:56
作者:胡志强
链接:https://www.zhihu.com/question/44780102/answer/122181341
来源:知乎

命令描述tomcat:deploy部署一个web war包tomcat:reload重新加载web war包

tomcat:start

启动tomcat

tomcat:stop

停止tomcat

tomcat:undeploy

停止一个war包tomcat:run启动嵌入式tomcat ,并运行当前项目

通过文档我们可以了解到:deploy 的动作其实只有一个,就是部署 war包。所以我们在部署之前必须要做start 。而start 是启动本机的tomcat,这个tomcat 是我们下载的那个。可以看出来,前5个命令其实都是对本机的tomcat做的操作。

只有run。提到了嵌入式tomcat。

所以查了下什么是嵌入式tomcat。嵌入式tomcat 就是把tomcat嵌入到java应用中去。在程序中配置tomcat组件。并控制tomcat 的启动和关闭。而不通过控制台和管理工具控制tomcat。

所以其实嵌入的这个tomcat其实是另一个写在程序里的tomcat了。

那这个tomcat是嵌入到哪里了?我们自己的应用吗?肯定不是,因为他是我们写的web应用的容器。

然后我想到:maven是java写的啊,是一个java应用啊。还有eclipse ,也是java写的,所以我发现:run这个命令是控制的maven嵌入的那个tomcat。它可以很方便的控制。开发人员无需搭建Tomcat的环境就可以使用内嵌式Tomcat进行开发,减少搭建J2EE容器环境的时间和开发时容器频繁启动所花时间,提高开发的效率.

所以:区别:启动的是不同的tomcat。deploy是部署没有启动的功能,run是启动+运行当前项目。run更方便。

Maven部署项目到Tomcat7出现403 Access Deny.

一、Tomcat6, Tomcat7中为了更好,更精确的实现权限控制,引入了多个用户角色,如manager-ui:用于查看HTML页面, 用于查看test的manager-script等。

  1. <role rolename="manager"/>  
  2. <role rolename="manager-gui"/>  
  3. <role rolename="admin"/>  
  4. <role rolename="admin-gui"/>  
  5. <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/> 

二、Tomcat7中部署后的url为:

/manager/html         HTML的GUI界面

/manager/text          文本接口
/manager/jmxproxy        JMX的代理
/manager/status            与状态相关的页面
三、 在Marven的settings.xml <servers>结点下加入

   <server>
      <id>tomcat</id>
      <username>admin</username>
      <password>admin</password>
    </server>

四、如果在tomcat的conf中这样配置tomcat-users.xml 就会出现403 Access Deny
  <role rolename="manager-ui"/>
  <user username="tomcat" password="1q2w3e4r" roles="manager-ui" />
改成如下配置即可避免403 Access Deny的错误:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-script,manager-gui"/>
五、在Eclipse的pom.xml的plugins中加入
<plugin>
        <groupId>oorg.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>1.1</version>
    <configuration>
    <url>http://localhost:8080/manager/text</url>
    <server>tomcat</server>
    <username>admin</username>
    <password>admin</password>
    </configuration>
      </plugin>
或者
<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
    <configuration>
    <url>http://localhost:8080/manager/text</url>
    <server>tomcat</server>
    <username>admin</username>
    <password>admin</password>
    </configuration>
 </plugin>
五。在项目上点右键,选择run as->run Configurations,找到Marven Build结点,增加一项。

   在goals中输入package tomcat:redeploy

   注:在编译和发布过程中,可能会以遇到内存不足的情况,在JRE tab页中输入-Xms256m -Xmx1024m,具体自己调整。


0 0
原创粉丝点击