Запустите Tomcat и разверните проект с собственным сервером.XML
Я просто хочу запустить веб-проект, который был настроен в проекте maven с pom.XML. Он использует Maven tomcat7-maven-plugin для развертывания артефакта веб-приложения, и на данный момент все работает правильно.
теперь я хочу добавить свой сервер.xml и tomcat-пользователи.xml в конфигурации tomcat. Я читал, что мне нужно добавить следующие строки.
<serverXml>src/main/resources/tomcat/server.xml</serverXml>
<tomcatUsers>src/main/resources/tomcat/tomcat-users.xml</tomcatUsers>
и это нормально. Он работает сейчас, и tomcat развертывается с использованием файла конфигурации выше, но проблема > артефакт веб-приложения не развернут там (не развертывается автоматически при запуске tomcat7: run). Кажется, что артефакт не обнаружен плагином и просто запускает сервер tomcat без добавления артефакта в webapps, просто используйте новые файлы конфигурации.
Я использую эту конфигурацию.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<url>http://localhost:8080/web-services</url>
<path>/web-services</path>
<serverXml>src/main/resources/tomcat/server.xml</serverXml>
<tomcatUsers>src/main/resources/tomcat/tomcat-users.xml</tomcatUsers>
<warRunDependencies>
<warRunDependency>
<dependency>
<groupId>com.koitoer.webservices</groupId>
<artifactId>web-services</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<contextPath>/web-services</contextPath>
</warRunDependency>
</warRunDependencies>
</configuration>
</execution>
</executions>
</plugin>
но tomcat начинает развертывание артефакта webapp, но не использует новые файлы конфигурации.
какова правильная конфигурация вот, я проверил это в должности но ничего, это возможно или я должен добавить файл войны вручную с помощью Tomcat manager?
3 ответов
на tomcat7-Maven-плагина документации говорит <serverXml>
:
сервер.xml для использования Примечание Если вы используете это, вы должны настроить в этом файле ваш webapp с пути.
Я думаю, это означает, что вы должны вставить тег <Context>
элемент с путем вашей войны внутри <Host>
элемент, например, так:
<Host appBase="webapps" autoDeploy="true" deployXML="false" name="localhost" unpackWARs="true">
<Context docBase="../../webapp" path="/webapp" reloadable="true" />
</Host>
где "webapp" - мое сгенерированное военное имя. Видимо, appBase
относительно target/tomcat
(и" webapps", похоже, является значением по умолчанию). docBase
относительно appBase
так что для простоты я использовал относительный путь к каталогу сборки.
это работает для меня, и без того <Context>
элемент I получает белую страницу.
если вы используете фильтрацию, вы, вероятно, можете заменить docBase
в собственность. Однако позаботьтесь об исключении сервера.xml (и tomcat-пользователи.xml) из вашего файла войны!
я добавил следующее в сервер.в XML и мое приложение отлично работает с tomcat7: run-war command:
<Host appBase="webapps" autoDeploy="true" deployXML="false"
name="localhost" unpackWARs="true">
<Context docBase="../../webApplicationName"
path="/webApplicationName" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
вот как я настраиваю плагин в пом.в XML
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<serverXml>src/main/tomcatconf/server.xml</serverXml>
<warDirectory>target/appName</warDirectory>
<webapps>
<webapp>
<groupId>com.abc</groupId>
<artifactId>appName</artifactId>
<version>7.0.1</version>
<type>war</type>
</webapp>
</webapps>
</configuration>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.5</version>
</dependency>
</plugin>
Я server.xml
+ другие файлы конфигурации в src/main/tomcatconf
каталог (значение по умолчанию плагина), а также имеют context.xml
на META-INF
реж и в src/main/tomcatconf
. Плагин, кажется, поднимает context.xml
один из справочники.
надеюсь, это сработает для вас.
Я думаю, что вы можете попробовать эту конфигурацию
<project>
...
<build>
<finalName>servidor-identidades-webapp</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<server>myserver</server>
<url>http://127.0.0.1:8080/manager</url>
<path>/servidor-identidades-webapp</path>
<warSourceDirectory>C:/Users/fulanis/workspace2/web/target/servidor-identidades-webapp.jar</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
Ref: https://wiki.base22.com/display/btg/How+to+create+a+Maven+web+app+and+deploy+to+Tomcat+-+fast
надеюсь, что это помогает.