AppDeploymentException при развертывании прокрученного вручную EAR Websphere

1

Я пытаюсь скомпилировать и развернуть файл EAR на сервере приложений WebSphere 6.1 (WAS) - без Rational Application Developer (RAD) или Liberty. Я на начальной стадии пытаюсь переместить компиляцию и развернуть сервер сборки. У меня нет никаких проблем с компиляцией. Однако, когда я пытаюсь развернуть EAR, я получаю исключение AppDeploymentException:

The EAR file could be corrupt and/or incomplete. Make sure that the application is at a compatible Java 2 Platform, Enterprise Edition (J2EE) Level for WebSphere Application Server.

Я где-то читал (не могу найти ссылку), что файлы WAS должны быть скомпилированы с использованием IBM JDK. Поэтому я установил это и перекомпилировал с ним, но получил ту же проблему.

Основная версия файлов классов (из javap) верна, но я все еще озадачен этой ошибкой, потому что кажется, что единственной разницей между "рабочим" и "нет" является сам байт-код. Есть ли еще какой-то другой встроенный mojo, который требует, чтобы эти файлы были созданы RAD?

Этот вопрос предполагает, что схема web.xml должна быть 2.4 для WebSphere 6.1, но это не повлияло на меня. На самом деле, если я возьму рабочий EAR (созданный через RAD), и из этой копии будут только файлы классов в EAR, которые были созданы сырым процессом JDK/gradle, он будет работать.

Извините, я не знаком с WebSphere, чтобы добавить больше информации об ошибке. Я проверил файл activity.log для этого профиля и даже не смог найти ошибку, о которой сообщалось на выходе консоли. Журнал dmgr только говорит:

[7/8/14 12:46:56:886 PDT] 0000073b ApplicationDe I ApplicationDeploymentController perform ApplicationDeploymentControll
er: performing appcontexts refresh
[7/8/14 12:47:00:416 PDT] 0000073b WebApp        A   SRVE0180I: [isclite#isclite.war] [/ibm/console] [Servlet.LOG]: action: ApplicationDeploymentDetailForm was null.Creating new form bean and storing in session
[7/8/14 12:48:25:273 PDT] 0000062d wtp           W org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl in
itModuleFileFromEAR Ignoring FileNotFoundException [ mbepepWeb.war ]
[7/8/14 12:48:25:279 PDT] 0000062d wtp           E   org.eclipse.jst.j2ee.application.internal.impl.WebModuleImpl incomp
atible with org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile

Я не уверен, насколько это уместно. Указанный файл войны находится в корне файла EAR.

Надеюсь, у кого-то есть предложение!

Теги:
gradle
deployment
websphere
websphere-6.1

2 ответа

1

Для WebSphere v6.1 требуется приложение Java EE 1.4. Убедитесь, что ваше приложение:

  • скомпилирована с максимальной совместимостью с Java 1.5
  • у вас есть файл application.xml в каталоге META-INF в ухе и его корректный справочный веб-модуль.
  • у вас есть web.xml в вашем военном файле в папке WEB-INF

Проверьте схему для обоих дескрипторов:

application.xml должен быть:

<application xmlns="http://java.sun.com/xml/ns/j2ee" id="Application_ID" version="1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">

web.xml должен быть:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

Как вы развертываете свое приложение?

  • 0
    Спасибо, это помогает прояснить требования, но это не моя проблема. Я использовал 1.5 (основная версия 49) и заменил все другие части уха, и он все еще не работал. Я добавил, что я думаю, это ответ.
0

У меня был рабочий файл EAR, экспортированный из RAD и моего нерабочего EAR из основного процесса сборки. Я заменил каталог WEB-INF/class специальным кодом, и он сработал. Я продолжал расширять выбор кода из пользовательского процесса, заменяя соответствующие фрагменты в файле RAD EAR, пока не нашел, что его нарушало.

Похоже, что виновником было то, что мой файл MANIFEST.MF в webapp не имел атрибута CLASSPATH, в то время как RAD-сгенерированный манифест имел пустой атрибут CLASSPATH. Один файл был 50 байт, один из них 25. Какая разница в нескольких байтах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню