2019独角兽企业重金招聘Python工程师标准>>>
The tomcat7-maven-plugin
allows running the current project as a Web application and additional <webapps>
can be specified that will be simultaneously loaded into tomcat.
My project is not a Web application, but it accesses services that are provided by webapps. So how is it possible to deploy a number of webapps without running the project itself as a webapp? The following Maven snippet results in FileNotFoundExceptions because a context.xml cannot be found.
<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.0</version><executions><execution><id>run-tomcat</id><phase>${tomcat.run.phase}</phase><goals><goal>run-war-only</goal></goals><configuration><webapps><webapp><contextPath>/my/app1</contextPath><groupId>...</groupId> <artifactId>...</artifactId><version>...</version><type>war</type> <asWebapp>true</asWebapp></webapp>... possibly more webapps ...</webapps> </configuration></execution><execution><id>tomcat-shutdown</id><phase>${tomcat.shutdown.phase}</phase><goals><goal>shutdown</goal></goals></execution></executions>
</plugin>
Workaround:
Even though your application itself is not a webapp, you need to configure a path
and a contextFile
for it:
<configuration><path>/my/non/existing/webapp</path><contextFile>src/test/resources/context.xml</contextFile><webapps>...
The specified context.xml
file must exist. The following worked for me, even though the web.xml
file does not exist:
<?xml version="1.0" encoding="utf-8"?>
<Context path="/my/non/existing/webapp"><WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>