Почему у меня есть зависимость от gwt? - PullRequest
3 голосов
/ 09 июня 2010

В приложении, генерируемом 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], 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?

Версия шва 2.1.2

EDIT: Только для записей: пока не появилось другое решение, я добавил gwt-servlet.jar в файл deployed-jars-ear.list, что удовлетворяет сканеру развертывания.

Ответы [ 3 ]

1 голос
/ 09 июня 2010

Здесь вы можете увидеть Ant Target, отвечающий за копирование библиотек, используемых Seam-gen

<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.

Файл build.xml, который использует Seam-gen, находится в

1 голос
/ 09 июня 2010

Похоже, что некоторая часть шва зависит только от классов из gwt-servlet.jar.

Держу пари, вы должны принять все как есть и надеяться на очистку кода на стороне шва, потому что удивительно, что вы обязаны добавить библиотеки 'gwt' в ваш проект, даже если вы не используете gwt.

0 голосов
/ 19 сентября 2012

На самом деле, проверяя мой проект шва, библиотека awt является внутренней зависимостью для некоторых модулей лица, вам просто нужно обязательно добавить gwt-servlet-2.3.0.jar в ваш

Проект-ear.ear \ Project.war \ WEB-INF \ Lib

...