簡體   English   中英

運行Tomcat並使用自己的server.xml部署項目

[英]Run Tomcat and deploy project with own server.xml

我只想運行一個使用pom.xml在maven項目中配置的Web項目。 它使用maven tomcat7-maven-plugin來部署Web應用程序工件,此時所有工作正常。

現在我想在tomcat配置中添加自己的server.xml和tomcat-users.xml。 我讀到我需要添加以下行。

 <serverXml>src/main/resources/tomcat/server.xml</serverXml>
 <tomcatUsers>src/main/resources/tomcat/tomcat-users.xml</tomcatUsers>

這沒關系。 它現在正在運行,並且使用上面的配置文件部署了tomcat,但問題是> 那里沒有部署Web應用程序工件 (當我運行tomcat7:run時沒有自動部署)。 看來插件沒有檢測到工件,只是啟動tomcat服務器而不將工件添加到webapps只需使用新的配置文件。

我用這個配置。

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <executions>
          <execution>
            <id>tomcat-run</id>
            <goals>
              <goal>exec-war-only</goal>
            </goals>
            <phase>package</phase>
           <configuration>
        <url>http://localhost:8080/web-services</url>
        <path>/web-services</path>
        <serverXml>src/main/resources/tomcat/server.xml</serverXml>
                <tomcatUsers>src/main/resources/tomcat/tomcat-users.xml</tomcatUsers>
                   <warRunDependencies>
                    <warRunDependency>
                     <dependency>
                        <groupId>com.koitoer.webservices</groupId>
                        <artifactId>web-services</artifactId>
                        <version>1.0-SNAPSHOT</version>
                        <type>war</type>
                      </dependency>
                    <contextPath>/web-services</contextPath>
                </warRunDependency>
              </warRunDependencies>
    </configuration>
    </execution>
        </executions>
</plugin>

但是tomcat開始部署webapp工件但不使用新的配置文件。

什么是正確的配置,我檢查了這篇文章,但沒有,這是可能的或我應該使用tomcat管理器手動添加war文件?

tomcat7-maven-plugin文檔<serverXml>說:

要使用的server.xml 注意如果使用此選項,則必須在此文件中配置webapp路徑。

我認為這意味着您必須在<Host>元素中插入帶有war的路徑的<Context> <Host>元素,如下所示:

<Host appBase="webapps" autoDeploy="true" deployXML="false" name="localhost" unpackWARs="true">
    <Context docBase="../../webapp" path="/webapp" reloadable="true" />
</Host>

“webapp”是我生成的戰爭名稱。 顯然, appBasetarget/tomcat (“webapps”似乎是默認值)。 docBaseappBase相關,所以為了簡單起見,我使用了構建目錄的相對路徑。

這對我有用,如果沒有<Context>元素,我會得到一個白頁。

如果您使用過濾,則可以使用屬性替換docBase 但請注意從war文件中排除server.xml(和tomcat-users.xml)!

我已將以下內容添加到server.xml中,並且我的應用程序可以正常使用tomcat7:run-war命令:

<Host appBase="webapps" autoDeploy="true" deployXML="false"
    name="localhost" unpackWARs="true">
    <Context docBase="../../webApplicationName"
        path="/webApplicationName" reloadable="true" />
    <Valve className="org.apache.catalina.valves.AccessLogValve"
        directory="logs"
        prefix="localhost_access_log." suffix=".txt"
        pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

以下是我在pom.xml中配置插件的方法

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>

    <configuration> 
        <path>/</path>
        <serverXml>src/main/tomcatconf/server.xml</serverXml>
        <warDirectory>target/appName</warDirectory>
        <webapps> 
            <webapp> 
                <groupId>com.abc</groupId> 
                <artifactId>appName</artifactId> 
                <version>7.0.1</version> 
                <type>war</type>    
            </webapp> 
        </webapps> 
    </configuration>

    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.5.5</version>
    </dependency>
</plugin>

我已將server.xml +其他配置文件放入src/main/tomcatconf目錄(插件的默認值),並將context.xml放入META-INF目錄和src/main/tomcatconf 該插件似乎從其中一個目錄中獲取了context.xml

希望這對你有用。

我想你可以試試這個配置

<project>
  ...
  <build>
    <finalName>servidor-identidades-webapp</finalName>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
          <server>myserver</server>
          <url>http://127.0.0.1:8080/manager</url>
          <path>/servidor-identidades-webapp</path>
          <warSourceDirectory>C:/Users/fulanis/workspace2/web/target/servidor-identidades-webapp.jar</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

參考: https//wiki.base22.com/display/btg/How+to+create+a+Maven+web+app+and+deploy+to+Tomcat+-+fast

希望這可以幫助。

暫無
暫無

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

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