MVN Tomcat: Run - Как мне редактировать Server.xml?
-
01-10-2019 - |
Вопрос
Я хочу запустить «MVN Tomcat: запустить» из командной строки, но как я могу редактировать сервер.xml, чтобы установить maxhtpheadersize = "65536" в разъемах? Или я могу настроить разъемы в POM.XML?
Ваше здоровье
Ник
Решение
К сожалению, после выполнения некоторых исследований я не думаю, что есть способ редактировать разъемы Server.xml. mvn tomcat:run
использует встроенный томат.
Если кто-то не найдет что-то, кажется, что ваша лучшая ставка будет двигаться к Maven Cargo Plugin и zip up Ваша собственная установка Tomcat с вашим обычай server.xml
.
<cargo containerId="tomcat7x" [...]>
<zipUrlInstaller
installUrl="file://tomcat-custom.zip",
installDir="target/installs"/>
[...]
</cargo>
Или что-то из вида ...
Другие советы
Org.codehaus.mojo: tomcat-maven-plugin позволит вам установить путь к файлу Server.xml в разделе конфигурации:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<serverXml>path_to_server_xml_file</serverXml>
</configuration>
</plugin>
Я экспериментировал с использованием параметра ServerXML для tomcat:run
Цель (http://tomcat.apache.org/maven-plugin-2/tomcat6-maven-plugin/run-mojo.html#serverxml).
Последующий server.xml
кажется, бежит без ошибок, но без Context
Элемент не загружает WebApp. Я думаю, если бы я скопировал мой Context
Элемент из SRC / MAIN / WEBAPP / META-INF / CONTEXT.XML для внутри Host
Элемент, это может работать просто хорошо:
<?xml version='1.0' encoding='utf-8'?>
<Server port="-1" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps">
</Host>
</Engine>
</Service>
</Server>
Чтобы запустить с этим сервером, я передаю ServerXML в качестве свойства в командной строке Maven:
mvn -Dmaven.tomcat.serverXml=src/main/resources/server.xml tomcat:run
Цель может быть tomcat6:run
Если вы используете версию плагина, который поддерживает как Tomcat 6 и 7.
видеть http://docs.codehaus.org/display/cargo/custom+file+configurations.
я думать Вы можете сделать это как это и поместите свой пользовательский Server.xml в свой проект:
<configuration>
<type>standalone</type>
<configfiles>
<configfile>
<file>${basedir}/src/main/resources/server.xml</file>
<todir>conf</todir>
</configfile>
</configfiles>
</configuration>
и используйте по умолчанию Cargo Server.xml в качестве шаблона, чтобы получить замену недвижимости:
<Server port="@cargo.rmi.port@" shutdown="SHUTDOWN" debug="@catalina.logging.level@">
<Service name="Catalina" debug="@catalina.logging.level@">
<Connector port="@cargo.servlet.port@"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
scheme="@cargo.protocol@" secure="@catalina.secure@"
debug="@catalina.logging.level@"
emptySessionPath="@catalina.connector.emptySessionPath@"
URIEncoding="@catalina.servlet.uriencoding@" />
<!-- Define an AJP 1.3 Connector on port @cargo.tomcat.ajp.port@ -->
<Connector port="@cargo.tomcat.ajp.port@" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="@cargo.hostname@"
debug="@catalina.logging.level@">
<Realm className="org.apache.catalina.realm.MemoryRealm" />
<!-- Note: There seems to be a bug in Tomcat 5.x if the debug attribute
is present. Ideally we would have written:
debug="@catalina.logging.level@"
However, doing this result in a NullPointerException in
ExpandWar.java at line 145. -->
<Host name="@cargo.hostname@" appBase="webapps" unpackWARs="true"
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<!-- Contexts to explicitely point to where the wars are located -->
@tomcat.webapps@
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="@cargo.hostname@_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
</Host>
</Engine>
</Service>
</Server>