NoClassDefFoundError с загрузчиком классов EJB - PullRequest
0 голосов
/ 15 февраля 2012

Я получаю «java.lang.NoClassDefFoundError: br / com / company / comum / entity / api / MyEntity» при развертывании моего .ear.Этот «MyEntity» находится в модуле «ejb-commo» n и является интерфейсом, который реализуют сущности JPA.Модуль "ejb-testapp" содержит несколько сущностей JPA, которые реализуют "MyEntity".

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ear-plugin</artifactId>
    <configuration>
        <version>6</version>
        <generateApplicationXml>true</generateApplicationXml>
        <defaultJavaBundleDir>lib/</defaultJavaBundleDir>
        <modules>                        
            <ejbModule>
                <groupId>br.com.company</groupId>
                <artifactId>ejb-common</artifactId>
            </ejbModule>                                          
            <ejbModule>
                <groupId>br.com.company</groupId>
                <artifactId>ejb-testapp</artifactId>
             </ejbModule>   
             <webModule>
                <groupId>br.com.company</groupId>
                <artifactId>web-testapp</artifactId>
                <contextRoot>/desktop</contextRoot>
             </webModule>     
         </modules>
        </configuration>
    </plugin>

Я проверил зависимости в poms, и все в порядке.

Есть предложения?

1 Ответ

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

Если вы говорите в eclipse (m2e-wtp), попробуйте щелкнуть правой кнопкой мыши по проекту и выполнить экспорт -> EAR и посмотреть, что получится.Я сделал это и заметил, что фляги выводились в корень EAR (m2e-wtp фактически игнорировал ).

Я изменил его на использование вместо этого (maven изменил имязначение этого параметра, но сохранил значение defaultJavaBundleDir для обратной совместимости), и оно работало, как и ожидалось.

...