2013-03-05 24 views
2

我有這個Spring MVC應用程序,我正在處理和東西看起來非常好,直到我試圖部署在臨時服務器上 - 然後我遇到了這個問題。顯示使用Tomcat7 Maven插件但不使用獨立Tomcat的主頁

事實:

  1. 當我使用Tomcat的7的Maven插件具有以下配置的一切運作良好和花花公子使用http://localhost:8080
<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
    <warSourceDirectory>${webappDirectory}</warSourceDirectory> 
    <path>/</path> 
    <port>${httpPort}</port> 
    <httpsPort>${httpsPort}</httpsPort> 
    <keystoreFile>${webappDirectory}/WEB-INF/some.keystore</keystoreFile> 
    <keystorePass>broadleaf</keystorePass> 
    <password>broadleaf</password> 
    </configuration> 
</plugin> 

但是,當我對在8080端口上提供與ROOT.war一個獨立的Tomcat部署相同的代碼 - 我嘗試使用http://localhost:8080 - 我得到一個404錯誤。但是當我指向http://localhost:8080/somepage時,我得到了我需要的東西。

這是一個不會在web.xml聲明歡迎頁面一個Spring MVC應用程序,而是宣告一個servlet:

<servlet> 
    <servlet-name>myservelet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
    <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:/applicationContext-servlet-cms-contentClient.xml/WEB-INF/applicationContext-servlet.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>myservelet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

有沒有別的東西,我需要做的Tomcat的單機得到它的工作?除了主頁以外,其他所有頁面都可以正常使用。我錯過了什麼?

+0

你有定義的「/」的RequestMapping控制器 嘗試使用?「HTTP://本地主機:8080 /」,並在後面加上斜槓,看看你會得到什麼 – ninnemannk 2013-03-05 20:22:40

+0

我原來的代碼不有一個,因爲我使用CMS。我試着添加一個工程,但它沒有顯示頁面的所有預先初始化的數據,因爲一些部分沒有正確初始化。我不明白的是爲什麼它使用插件但沒有獨立? – 2013-03-05 20:27:21

+0

我對tomcat-maven-plugin不熟悉,但是我的假設是插件會爲「/」的初始映射定義一個主頁,如果沒有明確定義的話。 – ninnemannk 2013-03-05 20:38:57

回答

0

從tomcat-maven-plugin的文檔 - 看起來我是對的。當使用插件時,它使用插件定義中的變量來定義初始上下文。

您可以修改路徑爲<path>/MotaNginya</path>,那將是您的新主頁。

不使用插件時,您必須自己定義主頁或「/」網址。

爲了您的方便,請參閱tomcat-maven-plugin文檔。在頁面上搜索「Using a different context path"

0

Tomcat 7將在ROOT上下文中託管一個默認應用程序如果你想在那裏部署某些東西,你需要首先卸載它,同時請注意你的應用程序應該被命名爲ROOT.war或。類似

相關問題