我使用maven构建工具创建了一个vaadin示例项目。我使用eclips IDE进行此项目,原型是vaadin-archetype-clean,我能够构建war文件,之后我尝试在tomcat中部署它。我做的是将war(MyVaadinMavenProject-0.0.1-SNAPSHOT)文件复制到tomcat中的/ webapps文件夹并重新启动Web服务器。 然后我尝试使用“http:// localhost:8080 / MyVaadinMavenProject-0.0.1-SNAPSHOT”进行访问 但这让我和错误告诉
HTTP状态404 - /MyVaadinMavenProject-0.0.1-SNAPSHOT
任何人都可以告诉我,我犯了什么错误吗?
thanxx
答案 0 :(得分:0)
在您的web.xml中,您可以编写链接,您的应用程序将使用该链接,这意味着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>
创建文件dispatcher-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");
}
}