我试图编译并运行vaadin演示应用程序,但出现以下错误。我错过了什么?

我尝试从github https://github.com/vaadin/dashboard-demo下载代码


  mvn安装
  
  然后部署到Tomcatserver 7.0.47,但我不断收到以下消息
  错误。

HTTP Status 500 - com.vaadin.server.ServiceException: java.lang.ArrayIndexOutOfBoundsException: -1

  
  类型例外报告
  
  消息com.vaadin.server.ServiceException:
  java.lang.ArrayIndexOutOfBoundsException:-1
  
  描述服务器遇到内部错误,阻止了它
  从完成此请求。
  
  例外
  
  javax.servlet.ServletException:com.vaadin.server.ServiceException:
  java.lang.ArrayIndexOutOfBoundsException:-1
    com.vaadin.server.VaadinServlet.service(VaadinServlet.java:240)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  根本原因
  
  com.vaadin.server.ServiceException:
  java.lang.ArrayIndexOutOfBoundsException:-1
    com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1440)
    com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1394)
    com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  根本原因
  
  java.lang.ArrayIndexOutOfBoundsException:-1
    java.util.ArrayList.elementData(ArrayList.java:400)
    java.util.ArrayList.get(ArrayList.java:413)
    com.vaadin.demo.dashboard.data.DataProvider.createTransaction(DataProvider.java:406)
    com.vaadin.demo.dashboard.data.DataProvider.generateTransactionsData(DataProvider.java:345)
    com.vaadin.demo.dashboard.data.DataProvider。(DataProvider.java:53)
    com.vaadin.demo.dashboard.DashboardUI。(DashboardUI.java:62)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    java.lang.Class.newInstance(Class.java:374)
    com.vaadin.server.UIProvider.createInstance(UIProvider.java:36)
    com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:200)
    com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:73)
    com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37)
    com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1382)
    com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  note备注在Apache中可以找到根本原因的完整堆栈跟踪
  Tomcat / 7.0.47日志。
  
  Apache Tomcat / 7.0.47


和另一个错误

    HTTP Status 500 - com.vaadin.server.ServiceException: java.lang.ArrayIndexOutOfBoundsException: -1

type Exception report

message com.vaadin.server.ServiceException: java.lang.ArrayIndexOutOfBoundsException: -1

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: com.vaadin.server.ServiceException: java.lang.ArrayIndexOutOfBoundsException: -1
    com.vaadin.server.VaadinServlet.service(VaadinServlet.java:240)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
root cause

com.vaadin.server.ServiceException: java.lang.ArrayIndexOutOfBoundsException: -1
    com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1440)
    com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1394)
    com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
root cause

java.lang.ArrayIndexOutOfBoundsException: -1
    java.util.ArrayList.elementData(ArrayList.java:400)
    java.util.ArrayList.get(ArrayList.java:413)
    com.vaadin.demo.dashboard.data.DataProvider.createTransaction(DataProvider.java:406)
    com.vaadin.demo.dashboard.data.DataProvider.generateTransactionsData(DataProvider.java:345)
    com.vaadin.demo.dashboard.data.DataProvider.<init>(DataProvider.java:53)
    com.vaadin.demo.dashboard.DashboardUI.<init>(DashboardUI.java:62)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    java.lang.Class.newInstance(Class.java:374)
    com.vaadin.server.UIProvider.createInstance(UIProvider.java:36)
    com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:200)
    com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:73)
    com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37)
    com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1382)
    com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.

Apache Tomcat/7.0.47


我也用eclipse尝试过它也返回相同的错误。

最佳答案

当您尝试运行此演示时,这是常见的例外。您必须在DataProvider.class中修复apiKey。在仪表板示例中,使用http://developer.rottentomatoes.com API获取电影列表。最简单的方法-在该站点中创建帐户。它简单而免费。

09-20 12:44