本文介绍了在vaadin widgetset编译期间出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经创建了基于 GWT
组件状态的组件
package com.game.quest.ui.gwt; import com.vaadin.shared.AbstractComponentState; import java.util.ArrayList; import java.util.List; public class LinePlotState extends AbstractComponentState { public List<DataSeries> series = new ArrayList<>(); public static class DataSeries { public String label; public String color; public List<Float> data; } }
组件连接器 em>
package com.game.quest.ui.gwt; import ca.nanometrics.gflot.client.DataPoint; import ca.nanometrics.gflot.client.SeriesHandler; import ca.nanometrics.gflot.client.SimplePlot; import com.game.quest.ui.gwt.LinePlotState.DataSeries; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.communication.StateChangeEvent; import com.vaadin.client.ui.AbstractComponentConnector; import com.vaadin.shared.ui.Connect; @Connect(LinePlot.class) public class LinePlotConnector extends AbstractComponentConnector { @Override public LinePlotState getState() { return (LinePlotState) super.getState(); } @Override public SimplePlot getWidget() { return (SimplePlot) super.getWidget(); } @Override protected Widget createWidget() { return GWT.create(SimplePlot.class); } @Override public void onStateChanged(StateChangeEvent stateChangeEvent) { super.onStateChanged(stateChangeEvent); getWidget().getModel().clear(); for (DataSeries ds : getState().series) { SeriesHandler s = getWidget().getModel().addSeries(ds.label, ds.color); for (int i = 0; i < ds.data.size(); i++) { s.add(new DataPoint(i, ds.data.get(i))); } } getWidget().redraw(); } }
组件
Component
package com.game.quest.ui.gwt; import com.game.quest.ui.gwt.LinePlotState.DataSeries; import com.vaadin.ui.AbstractComponent; import java.util.Arrays; public class LinePlot extends AbstractComponent { public LinePlot() { } public LinePlotState getState() { return (LinePlotState) super.getState(); } public void addSeries(String label, String color, Float[] fs) { DataSeries ds = new DataSeries(); ds.label = label; ds.color = color; ds.data = Arrays.asList(fs); getState().series.add(ds); } }
我创建了 widgetset。 gwt.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-//Vaadin//DTD Vaadin 7//EN" "https://raw.github.com/vaadin/gwt/master/distro-source/core/src/gwt-module.dtd"> <module> <inherits name="com.vaadin.terminal.gwt.DefaultWidgetSet" /> <inherits name="ca.nanometrics.gflot.GFlot" /> </module>
我把这个文件放在 resources 文件夹中我的项目。
我使用 gradle-vaadin-plugin 进行编译
I put this file in resources folder of my project.I use gradle-vaadin-plugin for compilation
我的构建。 gradle 看起来像这样
apply plugin: 'com.bmuschko.tomcat' apply plugin: 'java' apply from: 'http://plugins.jasoft.fi/vaadin-groovy.plugin' repositories { maven { url mavenRepoUrl } maven { url vaadinAddonsRepoUrl } } buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath "com.bmuschko:gradle-tomcat-plugin:${gradleTomcatPlugin}" } } allprojects { group='com.game.quest' } dependencies { compile "org.springframework:spring-core:${springMvcVersion}" compile "org.springframework:spring-web:${springMvcVersion}" compile "org.springframework:spring-webmvc:${springMvcVersion}" compile "com.vaadin:vaadin-client:${vaadinVersion}" compile "com.vaadin:vaadin-themes:${vaadinVersion}" compile "com.vaadin:vaadin-server:${vaadinVersion}" compile "com.vaadin:vaadin-client-compiled:${vaadinVersion}" compile "ru.xpoft.vaadin:spring-vaadin-integration:${vaadinSpringIntegrationAddonVersion}" compile "org.hibernate:hibernate-validator:4.2.0.Final" def tomcatVersion = '7.0.59' tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}", "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}" compile "com.googlecode.gflot:gflot:${gFlotVersion}" } vaadin { version vaadinVersion widgetset 'Widgetset' } [tomcatRun, tomcatRunWar]*.configure { httpPort = 9080 stopPort = 9081 }
但是当我尝试编译它时,我是ve this error
But when I try to compile it I have this error
D:\work\test-workspace\TextQuestVaadin>gradlew vaadinCompileWidgetset --stacktrace Using Gradle Vaadin Plugin 0.9.8 :compileJava UP-TO-DATE :compileGroovy UP-TO-DATE :vaadinUpdateAddonStyles :vaadinUpdateWidgetset :processResources UP-TO-DATE :classes UP-TO-DATE :vaadinClassPathJar SKIPPED :vaadinCompileWidgetset Errors in 'com/google/gwt/user/client/ui/impl/RichTextAreaImplIE6.java' Line 28: Type mismatch: cannot convert from com.google.gwt.dom.client.Element to com.google.gwt.user.client.Element Tracing compile failure path for type 'com.google.gwt.user.client.ui.impl.TextBoxImplIE6' Errors in 'com/google/gwt/user/client/ui/impl/TextBoxImplIE6.java' Line 87: The method getTextAreaSelectionLength(Element) of type TextBoxImplIE6 must override or implement a supertype method Line 27: The method getCursorPos(Element) of type TextBoxImplIE6 must override or implement a supertype method Line 116: The method setSelectionRange(Element, int, int) of type TextBoxImplIE6 must override or implement a supertype meth od Line 40: The method getSelectionLength(Element) of type TextBoxImplIE6 must override or implement a supertype method Line 59: The method getTextAreaCursorPos(Element) of type TextBoxImplIE6 must override or implement a supertype method Tracing compile failure path for type 'com.google.gwt.user.client.impl.DOMImplOpera' Errors in 'com/google/gwt/user/client/impl/DOMImplOpera.java' Line 29: The method sinkEventsImpl(Element, int) of type DOMImplOpera must override or implement a supertype method Tracing compile failure path for type 'com.google.gwt.user.client.ui.impl.ClippedImageImplIE6' Errors in 'com/google/gwt/user/client/ui/impl/ClippedImageImplIE6.java' Line 78: The method adjust(Element, SafeUri, int, int, int, int) in the type ClippedImageImpl is not applicable for the argu ments (Element, String, int, int, int, int) Line 136: The method getHTML(String, int, int, int, int) of type ClippedImageImplIE6 must override or implement a supertype method Line 118: The method fireSyntheticLoadEvent(Image) is undefined for the type ClippedImageImpl Line 138: The method getHTML(String, int, int, int, int) is undefined for the type ClippedImageImpl Line 105: The method createStructure(SafeUri, int, int, int, int) in the type ClippedImageImpl is not applicable for the arg uments (String, int, int, int, int) Line 75: The method adjust(Element, String, int, int, int, int) of type ClippedImageImplIE6 must override or implement a sup ertype method Line 110: The method createStructure(SafeUri, int, int, int, int) in the type ClippedImageImpl is not applicable for the arg uments (String, int, int, int, int) Line 102: The method createStructure(String, int, int, int, int) of type ClippedImageImplIE6 must override or implement a su pertype method Tracing compile failure path for type 'com.google.gwt.dom.client.DOMImplOpera' Errors in 'com/google/gwt/dom/client/DOMImplOpera.java' Line 21: The type DOMImplOpera must implement the inherited abstract method DOMImpl.createKeyCodeEvent(Document, String, boo lean, boolean, boolean, boolean, int) Line 21: The type DOMImplOpera must implement the inherited abstract method DOMImpl.createKeyEvent(Document, String, boolean , boolean, boolean, boolean, boolean, boolean, int, int) Line 21: The type DOMImplOpera must implement the inherited abstract method DOMImpl.createKeyPressEvent(Document, boolean, b oolean, boolean, boolean, int) Tracing compile failure path for type 'com.google.gwt.user.client.ui.impl.PopupImplIE6' Errors in 'com/google/gwt/user/client/ui/impl/PopupImplIE6.java' Line 86: The method setVisible(Element, boolean) of type PopupImplIE6 must override or implement a supertype method Line 40: The method onShow(Element) of type PopupImplIE6 must override or implement a supertype method Line 27: The method onHide(Element) of type PopupImplIE6 must override or implement a supertype method Tracing compile failure path for type 'com.google.gwt.dom.client.DOMImplSafari' Errors in 'com/google/gwt/dom/client/DOMImplSafari.java' Line 21: The type DOMImplSafari must implement the inherited abstract method DOMImpl.createKeyCodeEvent(Document, String, bo olean, boolean, boolean, boolean, int) Line 21: The type DOMImplSafari must implement the inherited abstract method DOMImpl.createKeyPressEvent(Document, boolean, boolean, boolean, boolean, int) Tracing compile failure path for type 'com.google.gwt.dom.client.DOMImplIE6' Errors in 'com/google/gwt/dom/client/DOMImplIE6.java' Line 56: The method imgGetSrc(Element) of type DOMImplIE6 must override or implement a supertype method Line 68: The method imgSetSrc(Element, String) of type DOMImplIE6 must override or implement a supertype method Tracing compile failure path for type 'com.google.gwt.user.client.ui.impl.FocusImplOld' Errors in 'com/google/gwt/user/client/ui/impl/FocusImplOld.java' Line 91: The method setTabIndex(Element, int) of type FocusImplOld must override or implement a supertype method Line 86: The method setAccessKey(Element, char) of type FocusImplOld must override or implement a supertype method Line 76: The method focus(Element) of type FocusImplOld must override or implement a supertype method Line 81: The method getTabIndex(Element) of type FocusImplOld must override or implement a supertype method Line 36: The method blur(Element) of type FocusImplOld must override or implement a supertype method Aborting compile due to errors in some input files :vaadinCompileWidgetset FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':vaadinCompileWidgetset'. > Widgetset failed to compile. See error log above. * Try: Run with --info or --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':vaadinCompileWidgetset'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java :69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecut er.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter .java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java: 52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java: 43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.j ava:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.j ava:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.jav a:90) at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28) at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecute r.java:50) at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecute r.java:27) at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:40) at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:169) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) at org.gradle.launcher.Main.doAction(Main.java:33) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) at org.gradle.launcher.GradleMain.main(GradleMain.java:23) at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Caused by: org.gradle.api.GradleException: Widgetset failed to compile. See error log above. at fi.jasoft.plugin.tasks.CompileWidgetsetTask.run(CompileWidgetsetTask.groovy:166) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(Annotati onProcessingTaskFactory.java:226) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(Annotation ProcessingTaskFactory.java:219) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(Annotation ProcessingTaskFactory.java:208) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:589) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:572) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java: 80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java :61) ... 49 more
在编译失败后,我的 widgetset.gwt.xml 看起来像这样
Also after failed compilation my widgetset.gwt.xml looks like this
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-//Vaadin//DTD Vaadin 7//EN" "https://raw.github.com/vaadin/gwt/master/distro-source/core/src/gwt-module.dtd"> <!-- WS Compiler: manually edited --> <module> <inherits name="com.vaadin.DefaultWidgetSet" /> <set-property name="user.agent" value="ie8,ie9,gecko1_8,safari,ie10" /> <source path="client" /> <source path="shared" /> <collapse-all-properties /> <set-property name="compiler.useSymbolMaps" value="true" /> </module>
我的 web.xml 看起来像这样
<?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:/spring-context.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>text-quest</servlet-name> <servlet-class>ru.xpoft.vaadin.SpringVaadinServlet</servlet-class> <init-param> <param-name>beanName</param-name> <param-value>textQuestUi</param-value> </init-param> <init-param> <param-name>contextConfigLocation</param-name> <param-value></param-value> </init-param> <init-param> <param-name>widgetset</param-name> <param-value>Widgetset</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>text-quest</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>text-quest</servlet-name> <url-pattern>/VAADIN/*</url-pattern> </servlet-mapping> </web-app>
我使用 vaadinVersion = 7.5.0 。
有什么问题?据我所知,这是 GWT ?
What's the problem? As far as I can understand it's something with GWT?
推荐答案
遇到同样的问题并通过增加gwt版本来解决它。
I ran into the same problem and solved it by increasing gwt version.
<dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-user</artifactId> <version>2.7.0</version> </dependency>
这篇关于在vaadin widgetset编译期间出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!