2015-10-29 47 views
0

我已经按照他们的网站上最新的Errai入门指南。Errai GWT Composite ClassNotFounException?

基本上为每一个Java类,我作出这样的扩展复合(即所有Errai @Templated控制器类)抛出类似的,当我使用mvn clean gwt:run

[INFO] WARN [org.jboss.modules] Failed to define class com.justinvesting.client.local.pages.NamePage in Module "deployment.errai-test.war:main" from Service Module 
Loader: java.lang.LinkageError: Failed to link com/justinvesting/client/local/pages/NamePage (Module "deployment.errai-test.war:main" from Service Module Loader) 
[INFO] at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.Module.loadModuleClass(Module.java:568) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [wildfly-weld-8.1.0.Final.jar:8.1.0.Final] 
[INFO] at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:106) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23] 
[INFO] at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:94) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23] 
[INFO] at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23] 
[INFO] at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23] 
[INFO] at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23] 
[INFO] at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53) [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23] 
[INFO] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_60] 
[INFO] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60] 
[INFO] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_60] 
[INFO] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60] 
[INFO] Caused by: java.lang.NoClassDefFoundError: com/google/gwt/user/client/ui/Composite 
[INFO] at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_60] 
[INFO] at java.lang.ClassLoader.defineClass(ClassLoader.java:760) [rt.jar:1.8.0_60] 
[INFO] at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) [jboss-modules-1.3.3.Final.jar:1.3.3.Final] 
[INFO] ... 19 more 
[INFO] Caused by: java.lang.ClassNotFoundException: com.google.gwt.user.client.ui.Composite from [Module "deployment.errai-test.war:main" from Service Module Loader 

然而,这似乎并没有真正出现以下错误停止应用程序编译和运行。一旦它完成,我仍然可以成功地访问我的Errai GWT应用程序。但是我创建的类越多,这个堆栈跟踪得到的时间越长!

任何想法?

回答

0

你的运行时类路径中应该有gwt-server.jar。 Composite类存在于gwt-servlet.jar中。

+0

在Errai的背景下您有任何进一步的信息吗?正如我上面提到的,应用程序仍然运行良好,并且webapp完全可用,它只是在GWT开发模式启动时记录这些错误。令人沮丧的是,我遵循了Errai入门指南,所以我不知道什么是错的。同样,我已经克隆了几个Errai的演示项目,并且在运行时不会遇到此问题,但在任何地方的任何pom或配置文件中都看不到任何可能的差异! :( –

+0

你可以发布你的项目pom和gwt xml文件吗? – Mohit

+0

我会为你做一个更好的; https://github.com/LokiOfNZ/ErraiTest.git –

0

此错误表示所需的jar在构建路径上,但在运行时不可用。在部署应用程序之前,确保它包含在WEB-INF/lib文件夹中。

+0

我意识到这是什么classnotfoundexception意味着,但在GWT和Errai的情况下,我究竟在哪里丢失?正如我所说的,该应用程序仍然在GWT的开发模式中运行良好,我可以很好地使用该webapp。这些编译时错误似乎没有什么区别......但是! –

+0

还有另一种可能性 - 例如,你有两个这个类的副本,因为你有两个版本的同一个jar。检查您的WEB-INF/lib文件夹以确保包含所有罐子,但每个罐子只有一个。如果您使用Eclipse,它实际上可能会在“问题”选项卡中给出警告,指出资源在运行时不可用。 –