2011-01-08 236 views
0

我使用maven構建工具創建了一個vaadin示例項目。我使用eclips IDE進行此項目,原型是vaadin-archetype-clean,我能夠構建war文件,之後我嘗試將它部署在tomcat中。我所做的是將war(MyVaadinMavenProject-0.0.1-SNAPSHOT)文件複製到tomcat中的/ webapps文件夾並重新啓動Web服務器。 然後我試圖使用的 「http://本地主機:8080/MyVaadinMavenProject-0.0.1-快照」 訪問 但是,讓我和錯誤告訴Vaadin在tomcat中部署maven項目

HTTP狀態404 - /MyVaadinMavenProject-0.0.1-SNAPSHOT

誰能告訴我什麼是我犯了錯誤?

+1

你能後的堆棧跟蹤(S)如果有當Tomcat啓動? – Raghuram 2011-01-10 04:39:38

回答

0

在你的web.xml中,你可以寫鏈接,以將您的應用程序使用,它的意思是thanxx http://localhost:{port}/your-application

<servlet> 
     <servlet-name>your-application</servlet-name> 
     <servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class> 
     <init-param> 
      <param-name>application</param-name> 
      <param-value>package.YourApplication</param-value> 
     </init-param> 
     <init-param> 
      <param-name>widgetset</param-name> 
      <param-value>com.vaadin.terminal.gwt.DefaultWidgetSet</param-value> 
     </init-param> 
    </servlet> 

<servlet-mapping> 
     <servlet-name>your-application</servlet-name> 
     <url-pattern>/your-application-link/*</url-pattern> 
    </servlet-mapping> 

這是一種方式,但是如果你在項目中使用Spring更有可能使用調度程序servlet來啓動Vaadin應用程序。 在web.xml文件

<servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

創建文件調度-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 
    <bean id="applicationServlet" class="org.springframework.web.servlet.mvc.ServletWrappingController" p:servletClass="package.YourApplication"> 
     <property name="initParameters"> 
      <props> 
       <prop key="application">package.YourApplication</prop> 
       <prop key="widgetset">com.vaadin.terminal.gwt.DefaultWidgetSet</prop> 
      </props> 
     </property> 
    </bean> 
    <!-- Map URIs to web controllers --> 
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
     <property name="urlMap"> 
      <map> 
       <entry key="/" value-ref="redirectController" /> 
       <entry key="/favicon.ico" value-ref="applicationServlet" /> 
       <entry key="/VAADIN*/**" value-ref="applicationServlet" /> 
       <entry key="/UIDL*/**" value-ref="applicationServlet" /> 
       <entry key="/your-application" value-ref="applicationServlet" /> 
      </map> 
     </property> 
    </bean> 
</beans> 

裏面urlMap您可以用鏈接寫允許初始化。你的vaadin應用程序。

創建redirectController

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller("redirectController") 
public class RedirectController { 
    @RequestMapping 
    protected ModelAndView handleRequestInternal() throws Exception { 
     return new ModelAndView("redirectView"); 
    } 
}