Vaadin с развертыванием проекта maven в tomcat

Я создал образец проекта vaadin с помощью инструмента сборки maven. Я использовал IDE eclips для этого проекта, а архетип - vaadin-archetype-clean, я смог создать военный файл, после этого я попытался развернуть его в tomcat. Что я сделал, так это скопируйте файл war(MyVaadinMavenProject-0.0.1-SNAPSHOT) в папку /webapps в tomcat и перезапустите веб-сервер. Затем я попытался получить доступ, используя «http://localhost:8080/MyVaadinMavenProject-0.0.1-SNAPSHOT», но это дает мне сообщение об ошибке

Статус HTTP 404 — /MyVaadinMavenProject-0.0.1-SNAPSHOT

Может ли кто-нибудь сказать мне, где я сделал ошибку ??

Спасибо


person 123Ex    schedule 08.01.2011    source источник
comment
Можете ли вы опубликовать трассировку стека, если таковая имеется, при запуске tomcat?   -  person Raghuram    schedule 10.01.2011
comment
Да, как сказал Рагурам. Пожалуйста, поделитесь своей трассировкой стека. Моя идея в том, что вы пропустили контекст, чтобы указать /webapps для вашего приложения. Итак, лучше разверните свое приложение с помощью Tomcat Manager.   -  person Mohamed Saligh    schedule 12.01.2011
comment
Спасибо, ребята, я решил эту проблему   -  person 123Ex    schedule 13.01.2011


Ответы (1)


В вашем web.xml вы можете написать ссылку, которая будет использоваться вашим приложением, это означает http://localhost%3a%7Bport%7D/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 в своем проекте, скорее всего, используйте диспетчерский сервлет для запуска приложения 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>

Создайте файл диспетчер-сервлет.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.

Создать контроллер перенаправления

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");
    }
}
person Yury    schedule 24.09.2011