问题2:Eclipse中Maven-pom聚合项目通过Tomcat自动部署步骤及部分问题

  在Eclipse通过Maven创建Pom项目,即聚合项目达到分布式项目的效果时,该Pom中必定包含一个可用于直接发布的War类型的项目和多个Jar类型的功能模块项目。部署一个简单的War类型项目跟传统的动态Web项目相同,部署Pom类型的项目则需要相关配置了,在Tomcat服务器上一个重要的插件必不可缺:tomcat7-maven-plugin或则tomcat-maven-plugin。后者为早期版本,此处我们使用前者,亲测tomcat7-maven-plugin可用于tomcat7、tomcat8和tomcat9中,此处我使用的是tomcat9来使用该插件。

使用步骤:

步骤1:打开服务器,进入http://localhost:8888/manager/html页面

  进入该界面前需要先登录,用户名和密码在tomcat安装目录的conf/tomcat-user.xml文件中,需要进行如下配置:

 <role rolename="tomcat"/>
  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <role rolename="role1"/>
  <user password="123456" roles="tomcat,manager-gui" username="tomcat"/> 

登录进入成功则看步骤2,失败则参考问题1.

步骤2:在该POM类型的聚合项目中配置插件引入依赖

  pom.xml文件配置如下:

<build>
        <plugins>
            
            <plugin>
                <groupId>org.apache.tomcat.mavengroupId>
                <artifactId>tomcat7-maven-pluginartifactId>
                <configuration>
                    <port>8888port>
                    <path>/path>
                    <version>2.2version>
                configuration>
            plugin>
        plugins>
    build>

配置完成进入步骤3.

步骤3:运行该项目

  由于在第二步骤我们没有配置项目的具体路劲,则默认使用tomcat的主路径来访问项目,首次操作:右键该Pom聚合项目,选择第二个Maven build..,在弹出框恶Goals中输入:tomcat7:run 或则 clean tomcat7:run 两个命令都可以,回车可看控制台信息,下次操作:可直接选择第一个Maven build..,点击其中一个历史命令即可。若出现如下信息则表示部署运行项目成功:

[INFO] Running war on http://localhost:8888/
[INFO] Using existing Tomcat server configuration at D:\develop\JQuerySpace\taotao-manager\taotao-manager-web\target\tomcat
[INFO] create webapp with contextPath: 
七月 09, 2017 10:49:51 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8888"]
七月 09, 2017 10:49:51 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
七月 09, 2017 10:49:51 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
七月 09, 2017 10:50:04 上午 org.apache.catalina.core.ApplicationContext log
信息: No Spring WebApplicationInitializer types detected on classpath
七月 09, 2017 10:50:04 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8888"]

  此后直接访问该路径http://localhost:8888/,则能进入聚合项目中的war类型项目的index.jsp界面,集成部署完成,控制台信息不如上所述请参考问题2,问题3。


问题1:访问http://localhost:8888/manager/html失败401,403错误码。

&emap; 解决:tomcat对于访问路径解析出错,进入tomcat安装目录的webapps目录下的manager文件夹中的META-INF文件夹中找到context.xml,注释掉如下一段配置:

<Context antiResourceLocking="false" privileged="true" >


Context>

问题2:控制台信息报错Unable to process Jar entry…

  解决:该错误信息后面会给一个该jar的本地仓库路径,可能问题是在项目本地仓库中该jar包存在引用问题,建议删除本地仓库中的该jar包,而后重新编译build该项目或则所有项目,eclipse会自动重新下载该错误插件jar。我的本地仓库为C:\Users\Administrator.m2\repository中,出现该问题,个人建议将该仓库中的jar包全部删除而后编译重新全部下载,否则会在运行时报其他jar包的问题。

问题3:控制台信息报错:…其他项目相关未找到等…

  解决:若该聚合项目存在父类的Maven Project POM类型或则存在同类的Maven Project Jar类型项目,运行该项目前需要提前将其他与之相关的项目安装部署,选择Maven install…,注意此处提前安装的并不是该POM项目中的Maven Module哦! (module不需要提前安装,它跟随该pom一起部署运行) 控制台出现如下信息则成功:

BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.927 s
[INFO] Finished at: 2017-07-09T11:30:46+08:00
[INFO] Final Memory: 12M/155M

问题4:java.net.BindException: Address already in use: JVM_Bind :8888 或则 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8888]]

  解决:运行项目可能出现该问题,可能原因是:服务器已经开启了,或则该项目已经提前运行过,另一个进程在使用中。关闭服务器,在Console控制台点击X号关闭,直到出现小红色方块并点击它结束关闭,确保最后全部关闭进程完成,而后再重新运行项目即可。


开发学习中很多问题都能够通过网络搜索解决,解决问题或许很容易,找到问题分析理解却很难!

你可能感兴趣的:(问题总结)