2013-07-15 39 views
0

我是Vaadin的新手,我正在嘗試使用此技術進行一些測試。 我使用Tomcat 7服務器將我的項目設置爲Eclipse下的Maven項目。Vaadin 7.1.0 - DefaultWidgetSet無法找到

起初我從Vaadin 7.0.0開始,一切正常。現在我將版本從7.0.0更改爲7.1.0,因爲我喜歡測試推送功能。 隨着Vaadin 7.0.0一切工作正常,但因爲我改變了我的版本出現錯誤:

Requested resource [/VAADIN/widgetsets/com.vaadin.DefaultWidgetSet /com.vaadin.DefaultWidgetSet.nocache.js] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder. 

的DefaultWidget由Vaadin創建我讀過,但我怎麼能做到這一點?

回答

1

除非將新的客戶端組件添加到Vaadin項目中,否則不需要編譯WidgetSet。但是,Vaadin的默認配置假定您有一個。要通過此錯誤,只需在您的web.xml中刪除widgetset<init-param>標記。

<servlet> 
    <servlet-name>Your-SERVLET-NAME</servlet-name> 
    <servlet-class>com.vaadin.server.VaadinServlet</servlet-class> 
    <init-param> 
     <param-name>UI</param-name> 
     <param-value>com.example.MyUI</param-value> 
    </init-param> 
    <init-param> 
     <param-name>widgetset</param-name> 
     <param-value>another.path</param-value> 
    </init-param> 
</servlet> 

或者,你可以創建一個.xml文件在同一封裝(例如MyWSet.xml)爲您的UI類,並在web.xml引用它。

com.exampleMyWSet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd"> 
<module> 
    <inherits name="com.vaadin.DefaultWidgetSet" /> 
</module> 

web.xml

<servlet> 
    <servlet-name>Your-SERVLET-NAME</servlet-name> 
    <servlet-class>com.vaadin.server.VaadinServlet</servlet-class> 
    <init-param> 
     <param-name>UI</param-name> 
     <param-value>com.example.MyUI</param-value> 
    </init-param> 
    <init-param> 
     <param-name>widgetset</param-name> 
     <param-value>com.example.MyWSet</param-value> 
    </init-param> 
</servlet> 

記住,你不需要.xml後綴在web.xml。最後,運行mvn vaadin:compile來編譯這個組件集。