![](/img/trans.png)
[英]java spring problem : project can not run on tomcat server even though edited the server.xml file?
[英]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”是我生成的戰爭名稱。 顯然, appBase
與target/tomcat
(“webapps”似乎是默認值)。 docBase
與appBase
相關,所以為了簡單起見,我使用了構建目錄的相對路徑。
這對我有用,如果沒有<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 "%r" %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.