2013-12-17 73 views
0

我正在對我的Vaadin項目使用響應式附加組件。我編寫了這個小部件,並且能夠在Eclipse上運行這個項目。我使用的版本是Vaadin 7.1.9和Eclipse Juno。如何使用插件將應用程序部署到war文件

然後,當我試圖導出到war文件並將其部署到Jetty 8和Jetty 9上時,我得到了以下每個錯誤。

在碼頭8,我正在回: 我能夠推出碼頭,但是當我試圖訪問如果從瀏覽器中,我找回了以下內容:在碼頭9

 Widgetset does not contain implementation for com.vaadin.addon.responsive.Responsive. 
     Check its component connector's @Connect mapping, widgetsets GWT module description file and re-compile your widgetset. 
     In case you have downloaded a vaadin add-on package, you might want to refer to add-on instructions. 

,我找回:

java.lang.IllegalStateException: Multiple servlets map to path: /* 
      at org.eclipse.jetty.servlet.ServletHandler.updateMappings(ServletHandle 
    r.java:1383) 
      at org.eclipse.jetty.servlet.ServletHandler.setServletMappings(ServletHa 
    ndler.java:1480) 
      at org.eclipse.jetty.servlet.ServletHandler.addServletMapping(ServletHan 
    dler.java:916) 
      at org.eclipse.jetty.annotations.WebServletAnnotation.apply(WebServletAn 

請注意:我有得到了在這兩個碼頭8和Jetty 9.此外,我的項目工作而沒有Widgetset的成功執行的另一場戰爭文件。

隨着Jetty 8,我試着再次重新組件,但我得到了同樣的錯誤。

這裏是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
    <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
     <display-name>Demo</display-name> 
     <context-param> 
      <description>Vaadin production mode</description> 
      <param-name>productionMode</param-name> 
      <param-value>false</param-value> 
     </context-param> 
     <servlet> 
      <servlet-name>Myrmnui Application</servlet-name> 
      <servlet-class>com.demo.main.DemoResponsiveAppServlet</servlet-class> 
      <init-param> 
       <description>Vaadin UI class</description> 
       <param-name>UI</param-name> 
       <param-value>com.demo.main.MainUI</param-value> 
      </init-param> 
      <init-param> 
       <description> 
       Application widgetset</description> 
       <param-name>widgetset</param-name> 
       <param-value>com.demo.main.widgetset.DemoWidgetset</param-value> 
      </init-param> 
     </servlet> 
     <servlet-mapping> 
      <servlet-name>Application</servlet-name> 
      <url-pattern>/*</url-pattern> 
     </servlet-mapping> 
     <servlet-mapping> 
      <servlet-name>Application</servlet-name> 
      <url-pattern>/VAADIN/*</url-pattern> 
     </servlet-mapping> 
    </web-app> 

請讓我知道我可以建立一個war文件,並與小部件部署一起。我用eclipse導出爲war文件。爲了確保這些小部件文件存在,我將這個war文件解壓縮並存在。這些文件不是零文件大小。

在此先感謝。

+0

這裏是我找到了解決方法:本工程爲碼頭8 在你VaadinServlet自定義類,我們需要指定widgetset包,如下所示: @WebServlet(value = {「/ *」,「/ VAADIN/*」},asyncSupported = true) @VaadinServletConfiguration(productionMode = false,ui = MainUI.class,widgetset = 「com.demo.main.widgetset.DemoWidgetset」) – User12111111

回答

0

錯誤...

`java.lang.IllegalStateException: Multiple servlets map to path: /*` 

...告訴,因爲它指向無效的WAR部署,那裏有多個servlet都映射到相同的路徑規格。這在Servlet API中是不允許的。

它可能是其中一個應該是一個過濾器?

或者某個圖書館引入了更多@WebServlet(value={"/*"})與您相沖突的條目?

如果在安裝DEBUG記錄(或FINEST如果使用java.util.logging)對指定logger org.eclipse.jetty.servlet.ServletHandler你可以看到發生了什麼事情很少的一些細節。

但是,錯誤消息可以改善,所以一個bug已經提交到改進:https://bugs.eclipse.org/424284

相關問題