Java 为什么我要依赖gwt?
在seam gen生成的应用程序中,在部署期间引发以下异常:Java 为什么我要依赖gwt?,java,deployment,gwt,jboss,seam,Java,Deployment,Gwt,Jboss,Seam,在seam gen生成的应用程序中,在部署期间引发以下异常: ERROR [LoadMgr3] Not resheduling failed loading task, loadTask=org.jboss.mx.loading.ClassLoadingTask@8c5c9c{classname: org.jboss.seam.remoting.gwt.GWT14Service, requestingThread: Thread[ScannerThread,5,jboss], requestin
ERROR [LoadMgr3] Not resheduling failed loading task, loadTask=org.jboss.mx.loading.ClassLoadingTask@8c5c9c{classname: org.jboss.seam.remoting.gwt.GWT14Service, requestingThread: Thread[ScannerThread,5,jboss], requestingClassLoader: org.jboss.mx.loading.UnifiedClassLoader3@3e4532{ url=f
ile:/C:/dev/jboss-4.3.0.GA/server/default/deploy/myapp.ear/ ,addedOrder=50}, loadedClass: nullnull, loadOrder: 2147483647, loadException: java.lang.NoClassDefFoundError: com/google/gwt/user/server/rpc/SerializationPolicyProvider, threadTaskCount: 0, state: 1, #CCE: 1}
java.lang.NoClassDefFoundError: com/google/gwt/user/server/rpc/SerializationPolicyProvider
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
...
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
描述了问题(和解决方法)。
既然我不使用gwt,我的问题是为什么我根本不使用gwt时会有这种依赖性
Seam版本2.1.2
编辑:
记录如下:在另一个解决方案可用之前,我在文件
deployed jars ear.list
中添加了gwt servlet.jar
,这满足了部署扫描器的要求。看起来seam的某些部分仅仅依赖于gwt servlet.jar
中的类
我打赌你必须接受它,并希望seam方面的代码清理,因为令人惊讶的是,即使你不使用gwt,你也需要向你的项目中添加“gwt”库。这里你可以看到负责复制seam gen使用的库的Ant Target
<target name="copy-lib" depends="copyseam, copyseamdependencies, copyjbossembedded, copy-icefaces-home, copy-icefaces-maven">
<echo message="Copying Seam and dependencies to the ${project.home}/lib directory..."/>
<copy todir="${project.home}/lib" overwrite="true">
<fileset dir="${seam.dir}/lib">
<exclude name="jsf-facelets.jar" if="icefaces.property"/>
<exclude name="ajax4jsf*.jar" if="icefaces.property"/>
<exclude name="richfaces*.jar" if="icefaces.property"/>
<exclude name="jboss-container.jar"/>
<exclude name="jboss-seam-wicket.jar"/>
<exclude name="jboss-seam-resteasy.jar"/>
<exclude name="test/jboss-deplyers.jar"/>
<exclude name="test/jboss-embedded-api.jar"/>
<exclude name="interop/**/*"/>
<exclude name="gen/**/*"/>
</fileset>
<fileset file="${driver.jar}"/>
</copy>
<!-- we must use an endorsed jars directory containing JAXB 2.1 for running SeamTest under Java 6 -->
<copy todir="${project.home}/lib/endorsed" file="${seam.dir}/lib/gen/jaxb-api.jar" overwrite="true"/>
<echo message="Copying JBoss Embedded configuration to the ${project.home}/bootstrap directory..."/>
<copy todir="${project.home}/bootstrap" overwrite="true">
<fileset dir="${seam.dir}/bootstrap"/>
</copy>
</target>
请注意,它是不排除GWT库。但据我所知,Seam不依赖于GWT库。因此,您可以设置自定义排除。您可以看到Seam应用程序的外观
Seam gen使用的build.xml文件位于
事实上,在我的seam项目中,awt库是一些faces模块的内部依赖项,您只需要确保将gwt-servlet-2.3.0.jar添加到
Project ear.ear\Project.war\WEB-INF\lib我们仍然希望找到另一个答案,以及如何摆脱这种依赖关系的解决方案;)谢谢,但是在lib dir中除了gwt-servlet.jar没有其他jar,它的名字表明它可能与这个问题有关。@stacker你看到Chris Bauer的评论了吗:@arthur-ronald-f-d-garcia谢谢,他说它记录为DEBUG(包括异常),用户不必担心。现在我很放松,如果我有时间,我将找出为什么这会显示为错误。对于记录,我排除了gwt-servlet.jar和jboss-seam-remoting.jar