Как развернуть библиотеку с Java EE 6 / Glassfish 3.x - PullRequest
2 голосов
/ 18 января 2011

У меня есть EAR с двумя простыми библиотеками.Одной из них является библиотека scala.Если я разверну EAR с NetBeans, он будет работать как положено.Хотя это нормально для разработки, конечный продукт должен быть развернут через командную строку.Для этого я использую:

asadmin --user … deploy --upload ./target/…-ear.ear

, что не удается с помощью:

org.glassfish.api.admin.CommandException: remote failure: Error occurred during deployment: Exception while deploying the app […-ear] : C:\Work\Workspa
ces\…\Glassfish\…\applications\scala-library-2.8.0.jar. Please see server.log for more details.
Befehl deploy fehlgeschlagen.

Поиск в сети Я обнаружил, что обработка библиотек стала более строгой с Java EE 6 / Glassfish 3.x ичто этого недостаточно, чтобы добавить их в папку lib внутри уха.Только автор не упомянул, что нужно сейчас.

Я нашел новые <module><java> записи для META-INF\application.xml - но это тоже не помогло:

  <module>
    <java>scala-library-2.8.0.jar</java>
  </module>

Итак, вопрос:Кто-нибудь знает, что вам нужно сделать, чтобы добавить библиотеки в файл EAR для Java EE 6 / Glassfish 3.x?

PS: я использую Maven для сборки - если это что-то меняет.

1 Ответ

3 голосов
/ 18 января 2011

Ну, кажется, я нашел решение сам (снова). После добавления записи library-directory в end из META-INF\application.xml развертывание запускается:

  <library-directory>lib</library-directory>
</application>

Странно то, что lib по умолчанию для library-directory. Так что я думаю, что это может быть ошибка в самом Glassfish, которая неправильно обрабатывает настройки по умолчанию. Если вы используете Maven, убедитесь, что вы используете bundleDir в вашем pom.xml, чтобы libs были в нужном месте:

        <jarModule>
          <groupId>org.scala-lang</groupId>
          <artifactId>scala-library</artifactId>
          <bundleDir>lib</bundleDir>
        </jarModule>
...