2010-09-08 13 views
7

Ich möchte "mvn tomcat: run" von der Kommandozeile ausführen, aber wie kann ich die server.xml bearbeiten, um maxHttpHeaderSize = "65536" in den Konnektoren zu setzen? Oder kann ich die Anschlüsse in der pom.xml konfigurieren?mvn tomcat: run - wie bearbeite ich server.xml?

Prost

Nik

Antwort

6

Leider nach einigen Recherchen, ich glaube nicht, dass es eine Art und Weise server.xml Connectoren zu bearbeiten. mvn tomcat:run verwendet einen eingebetteten Tomcat.

Wenn nicht jemand etwas findet, scheint es, als wäre es die beste Wette, zum maven cargo plugin zu wechseln und Ihre eigene Tomcat-Installation mit Ihrer benutzerdefinierten server.xml zu packen.

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

Oder etwas Ähnliches ...

+0

Es scheint, dass Sie Recht haben, es gibt im Moment keine andere Möglichkeit, als meinen eigenen Hack zu rollen, wie zum Beispiel über das Cargo-Plugin . – niklassaers

1

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

ich denke Sie es so tun können, und platzieren Sie Ihre individuelle server.xml in Ihrem Projekt:

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

und verwenden Sie die Standardladung server.xml als Vorlage, um pr zu erhalten operty Ersatz:

<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

Ich habe für das tomcat:run Ziel (http://tomcat.apache.org/maven-plugin-2/tomcat6-maven-plugin/run-mojo mit der Verwendung des serverXml Parameter experimentiert. html # serverXml).

Die folgende server.xml scheint ohne Fehler zu laufen, aber ohne ein Context Element wird die Webapp nicht geladen. Ich denke, wenn ich mein Context Element aus src/main/webapp/META-INF/context.xml in das Innere des Host Element kopiert, kann es gut funktionieren:

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

mit diesem Server ausführen zu können, gebe ich die serverXml als Eigenschaft auf der Maven-Befehlszeile:

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

Das Ziel könnte tomcat6:run sein, wenn Sie eine Version des Plugins verwenden, die sowohl Tomcat 6 und 7.

7

die org.codehaus unterstützt. mojo: tomcat-maven-plugin lässt dich s und den Pfad zur Datei server.xml im Konfigurationsabschnitt:

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