我正在尝试通过 tomcat maven 插件将 war 部署到嵌入式 tomcat 服务器。控制台显示服务器启动正常。
看来 war 还没有展开。当我访问 http://localhost:9090/foo 时,我从 Tomcat 收到 HTTP 状态 404和 http://localhost:9090
我在 target/tomcat/webapps 中没有看到 war 文件或分解的 war 文件
由于我无法控制的因素,我的配置有点(非常)不标准:
- 该项目使用 Maven 以外的其他方式构建 war 文件。
- 该项目不是根据 Maven 标准设置的。
- 该项目的包类型为 POM。
POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo</groupId>
<artifactId>foo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>iCON</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<ignorePackaging>true</ignorePackaging>
<warFile>foo.war</warFile>
<port>9090</port>
</configuration>
</plugin>
</plugins>
</build>
</project>
mvn tomcat7:run 的输出
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building foo 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ foo >>>
[INFO]
[INFO] <<< tomcat7-maven-plugin:2.2:run (default-cli) < process-classes @ foo <<<
[INFO]
[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ foo ---
[INFO] Running war on http://localhost:9090/foo
[INFO] Creating Tomcat server configuration at C:\someDir\aProject\target\tomcat
[INFO] create webapp with contextPath: /foo
Apr 15, 2015 12:50:56 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-9090"]
Apr 15, 2015 12:50:56 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Apr 15, 2015 12:50:56 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
Apr 15, 2015 12:50:58 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9090"]
最佳答案
几周前,我使用与您相同的插件成功地在嵌入式 tomcat 上部署了一场 war 。
我的配置如下
<build>
<finalName>MSHAService</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>localhost</server>
<path>/MSHA</path>
<username>user-acc-in-tomcat</username>
<password>some-password</password>
</configuration>
</plugin>
</plugins>
您可能会错过配置中的一些参数。
此外,您说当您访问 http://localhost:9090/foo 时会收到 HTTP Status 404
和 http://localhost:9090
您正在查看控制台日志,但查看访问日志可能会为您提供更多相关信息。 在此处查看有关 tomcat 日志的更多信息:https://tomcat.apache.org/tomcat-8.0-doc/logging.html
关于Maven Tomcat(嵌入式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656247/