java - 部署vaadin应用程序时出错

标签 java eclipse maven tomcat7 vaadin

我是 Vaadin 应用程序开发的初学者。我的应用程序是与 Maven 集成的 Vaadin 应用程序。

我正在尝试创建自己的自定义页面:

    @SuppressWarnings("serial")
public class MainPage extends UI {

public void markAsDirty() {
// TODO Auto-generated method stub

}

FilesystemContainer docs = new FilesystemContainer(new File(
  "D:/Users/etantaou/Desktop/alfresco-developer-series-master/actions/tutorial"));

Table doclist = new Table("Documents", docs);

DocEditor docView = new DocEditor();

@Override
protected void init(VaadinRequest request) {

  HorizontalSplitPanel split = new HorizontalSplitPanel();
setContent(split);
split.addComponent(doclist);
split.addComponent(docView);
doclist.setSizeFull();

doclist.addListener(new ValueChangeListener() {

  public void valueChange(ValueChangeEvent event) {
    // TODO Auto-generated method stub
    docView.setPropertyDataSource(new TextFileProperty((File) event.getProperty().getValue()));
  }
});

doclist.setImmediate(true);
doclist.setSelectable(true);
 }
}

这是我的 web.xml :

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
        <display-name>display-name>Vaadin Web Application</display-name>
        <context-param>
            <description>Vaadin production mode</description>
            <param-name>productionMode</param-name>
            <param-value>false</param-value>
        </context-param>
        <servlet>
            <servlet-name>Vaadin Application Servlet</servlet-name>
            <servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
            <init-param>
                <description>
                Vaadin application class to start</description>
                <param-name>UI</param-name>
                <param-value>com.delta.UI.MainPage</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>Vaadin Application Servlet</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>

        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>index.jsp</welcome-file>
            <welcome-file>default.html</welcome-file>
            <welcome-file>default.htm</welcome-file>
            <welcome-file>default.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

这是我运行 tomcat:run 后遇到的错误:

mars 10, 2014 2:47:22 PM org.atmosphere.cpr.AtmosphereFramework interceptor
INFO: Installed AtmosphereInterceptor  Track Message Size Interceptor using |. 
mars 10, 2014 2:47:22 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Vaadin Application Servlet threw exception
java.lang.NoSuchMethodError: com.vaadin.event.EventRouter.fireEvent(Ljava/util    /EventObject;Lcom/vaadin/server/ErrorHandler;)V
at com.vaadin.server.VaadinService.onVaadinSessionStarted(VaadinService.java:783)
at com.vaadin.server.VaadinService.createAndRegisterSession(VaadinService.java:740)
at   com.vaadin.server.VaadinService.doFindOrCreateVaadinSession(VaadinService.java:696)
at com.vaadin.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:637)
at com.vaadin.server.VaadinService.findVaadinSession(VaadinService.java:501)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1376)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:722)

最佳答案

看起来您的类路径中有一个旧版本 Vaadin 的 jar。尝试删除那个 jar 。

方法 EventRouter.fireEvent() 已在版本 7.1.9 中添加。

关于java - 部署vaadin应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22302209/

相关文章:

eclipse - 浏览scala源代码和渲染<-和=>的字体

maven - 当 github commit 触发构建时,Jenkins autobuild 进入循环

maven - 排除系统范围的 Maven 插件依赖

java - 在 Jersey JAX-RS 中将 JSON 对象转换为 Java 对象

java - 如何从 ActionListener 获取整数?

java - 未找到 HanderMapping - Spring 3.x - Controller

java - 新 Eclipse Maven 项目的默认 pom.xml

java - 执行javac失败,但无法解析错误:

java - 事务与Transactional和TransactionalTestExecutionListener有什么区别?

Java在线程中更改字符串值