2010-09-08 23 views

Trả lời

6

Thật không may, sau khi làm một số nghiên cứu, tôi không nghĩ rằng có một cách để chỉnh sửa kết nối server.xml của. mvn tomcat:run sử dụng Tomcat được nhúng.

Trừ khi ai đó tìm thấy thứ gì đó, có vẻ như cược tốt nhất của bạn sẽ là di chuyển đến maven cargo plugin và nén bản cài đặt Tomcat của riêng bạn bằng tùy chỉnh server.xml.

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

Hoặc một cái gì đó của các loại ...

+0

Có vẻ như bạn nói đúng, không có cách nào để thực hiện điều đó vào lúc khác ngoài việc tự mình hack, chẳng hạn như thông qua plugin hàng hóa . – niklassaers

1

thấy http://docs.codehaus.org/display/CARGO/Custom+File+Configurations

i nghĩ bạn có thể làm điều đó như thế này và đặt server.xml tùy chỉnh của bạn trong dự án của bạn:

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

và sử dụng gói mặc định server.xml làm mẫu để lấy pr thay thế operty:

<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

Tôi đã được thử nghiệm với việc sử dụng các tham số serverXml cho mục tiêu tomcat:run (http://tomcat.apache.org/maven-plugin-2/tomcat6-maven-plugin/run-mojo. html # serverXml).

Sau đây server.xml dường như chạy không có lỗi, nhưng không có phần tử Context, nó không tải ứng dụng web. Tôi nghĩ rằng nếu tôi sao chép nguyên tố Context tôi từ src/main/webapp/META-INF/context.xml để bên trong phần tử Host, nó có thể làm việc tốt:

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

Để chạy với máy chủ này, tôi vượt qua serverXml như một tài sản trên dòng lệnh Maven:

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

mục tiêu có thể phải tomcat6:run nếu bạn đang sử dụng một phiên bản của plugin hỗ trợ cả Tomcat 6 và 7.

7

các org.codehaus. mojo: tomcat-maven-plugin sẽ cho phép bạn và đường dẫn đến tệp server.xml trong phần cấu hình:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <configuration> 
    <serverXml>path_to_server_xml_file</serverXml> 
    </configuration> 
</plugin> 
Các vấn đề liên quan