簡體   English   中英

mvn tomcat:運行 - 如何編輯server.xml?

[英]mvn tomcat:run - how do I edit server.xml?

我想從命令行運行“mvn tomcat:run”,但是如何編輯server.xml以在連接器中設置maxHttpHeaderSize =“65536”? 或者我可以在pom.xml中配置連接器嗎?

干杯

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>

不幸的是,經過一些研究,我認為沒有辦法編輯server.xml的連接器。 mvn tomcat:run使用嵌入式Tomcat。

除非有人發現某些內容,否則您最好的選擇是轉移到maven貨運插件並使用自定義server.xml將自己的Tomcat安裝壓縮。

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

或類似的東西......

我一直在嘗試使用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的插件版本,則tomcat6:run

請參閱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>

並使用default 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM