2010-09-08 2 views
7

Je veux exécuter "mvn tomcat: run" à partir de la ligne de commande, mais comment puis-je modifier le fichier server.xml pour définir maxHttpHeaderSize = "65536" dans les connecteurs? Ou puis-je configurer les connecteurs dans le fichier pom.xml?mvn tomcat: run - comment éditer server.xml?

Vive

Nik

Répondre

6

Malheureusement, après avoir fait quelques recherches, je ne pense pas qu'il y ait un moyen de modifier les connecteurs de server.xml. mvn tomcat:run utilise un Tomcat intégré.

À moins que quelqu'un ne trouve quelque chose, il semble que votre meilleur pari sera de passer au maven cargo plugin et de compresser votre propre installation Tomcat avec votre server.xml personnalisé.

<cargo containerId="tomcat7x" [...]> 
    <zipUrlInstaller 
     installUrl="file://tomcat-custom.zip", 
     installDir="target/installs"/> 
    [...] 
</cargo> 

Ou quelque chose du genre ...

+0

Il semble que vous avez raison, il n'y a pas moyen de le faire au moment autre que rouler mon propre hack, par exemple par le plug-in cargo . – niklassaers

1

voir http://docs.codehaus.org/display/CARGO/Custom+File+Configurations

i pense vous pouvez le faire comme ça et placez votre server.xml personnalisé dans votre projet:

<configuration> 
    <type>standalone</type> 
    <configfiles> 
     <configfile> 
      <file>${basedir}/src/main/resources/server.xml</file> 
      <todir>conf</todir> 
     </configfile> 
    </configfiles> 
</configuration> 

et d'utiliser le fichier par défaut server.xml comme modèle pour obtenir remplacement opriété:

<Server port="@[email protected]" shutdown="SHUTDOWN" debug="@[email protected]"> 

    <Service name="Catalina" debug="@[email protected]"> 

    <Connector port="@[email protected]" 
     maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
     enableLookups="false" redirectPort="8443" acceptCount="100" 
     connectionTimeout="20000" disableUploadTimeout="true" 
     scheme="@[email protected]" secure="@[email protected]" 
     debug="@[email protected]" 
     emptySessionPath="@[email protected]" 
     URIEncoding="@[email protected]" /> 

    <!-- Define an AJP 1.3 Connector on port @[email protected] --> 
    <Connector port="@[email protected]" protocol="AJP/1.3" redirectPort="8443" /> 

    <Engine name="Catalina" defaultHost="@[email protected]" 
     debug="@[email protected]"> 

     <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="@[email protected]" 
      However, doing this result in a NullPointerException in 
      ExpandWar.java at line 145. --> 
     <Host name="@[email protected]" appBase="webapps" unpackWARs="true" 
      autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 

     <!-- Contexts to explicitely point to where the wars are located --> 
     @[email protected] 

     <Valve className="org.apache.catalina.valves.AccessLogValve" 
      directory="logs" prefix="@[email protected]_access_log." suffix=".txt" 
      pattern="common" resolveHosts="false"/> 

     </Host> 
    </Engine> 
    </Service> 
</Server> 
3

J'ai expérimenté avec l'aide du paramètre serverXml pour l'objectif tomcat:run (http://tomcat.apache.org/maven-plugin-2/tomcat6-maven-plugin/run-mojo. html # serverXml).

Le server.xml suivant semble fonctionner sans erreurs, mais sans un élément Context il ne charge pas la webapp. Je pense que si je copiais mon élément Context de src/main/webapp/META-INF/context.xml à l'intérieur de l'élément Host, il pourrait très bien fonctionner:

<?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> 

Pour exécuter avec ce serveur, je passe la serverXml comme une propriété sur la ligne de commande Maven:

mvn -Dmaven.tomcat.serverXml=src/main/resources/server.xml tomcat:run 

l'objectif pourrait devoir être tomcat6:run si vous utilisez une version du plug-in qui prend en charge à la fois Tomcat 6 et 7.

7

le org.codehaus. mojo: tomcat-maven-plugin vous laissera s et le chemin vers le fichier server.xml dans la section de configuration:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <configuration> 
    <serverXml>path_to_server_xml_file</serverXml> 
    </configuration> 
</plugin> 
Questions connexes