Сервер не может найти класс в .ear

У меня проблемы с файлом .ear. Структура файла такова:

app.ear
|-xxx.jar
 -yyy.jar
 -zzz.jar
 -ektorp.jar
 -app-ejb.jar
 -app-web.war
  |-WEB-INF
    |-lib
      |-xxx.jar
      |-yyy.jar
      |-zzz.jar
      |-ektorp.jar

Когда я пытаюсь развернуть свое приложение, я получаю ClassNotFoundException с классом, который находится в ektorp.jar. Этот файл используется модулем ejb.

Я тоже не знаю, почему эти баночки двойные? В ушах и в боевом модуле одни и те же файлы .jar.

Ухо построено maven2.


person amorfis    schedule 03.07.2010    source источник
comment
Не могли бы вы также опубликовать свой application.xml   -  person Romain Hippeau    schedule 04.07.2010


Ответы (1)


Когда я пытаюсь развернуть свое приложение, я получаю ClassNotFoundException с классом, который находится в ektorp.jar. Этот файл используется модулем ejb.

Ссылается ли EJB-JAR на ektorp.jar в записи Class-Path: манифеста (см. " rel="nofollow noreferrer">Упаковка приложений EJB 3 для получения дополнительных сведений об этом)? В часто задаваемых вопросах объясняется, как настроить подключаемый модуль для создать запись Class-Path: в манифесте:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ejb-plugin</artifactId>
        <version>2.2.1</version>
        ...
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
           </manifest>
         </archive>
       </configuration>
        ...
     </plugin>
   </plugins>
 </build>
  ...
</project>

На всякий случай, знаете ли вы, что вы можете упаковать EJB в .war с Java EE 6 (разница в том, что все классы загружаются одним и тем же загрузчиком классов при использовании упаковки .war)? Если у вас нет жестких требований к модуляризации, упаковка .war будет проще.

person Pascal Thivent    schedule 04.07.2010