Почему несовместимая версия Java EE выдает ошибку из WebSphere? - PullRequest
2 голосов
/ 08 сентября 2011

Я использовал WebSphere Allication Server версии 7.0.0.13 при развертывании своего приложения.Война была построена с использованием Ant версии 1.8.2 для создания файла war и ear.При установке приложения через WebSphere я обнаружил следующую ошибку:

Возможно, файл EAR поврежден и / или неполон.Убедитесь, что приложение находится на совместимом уровне Java (TM) Platform, Enterprise Edition (Java EE) для текущей версии WebSphere (R) Application Server.

com.ibm.websphere.management.application.client.AppDeploymentException [Исключением root является org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: dd_in_ear_load_EXC _]

Могу ли я узнать, в чем причина проблемы?Или я что-то пропустил в Ant-скрипте?Ниже приведен скрипт ANT для компиляции WAR и EAR.

<target name="compilewar" description="generating war">
        <war destfile="${dist.path}/WebApp.war" webxml="${source.path}/mywebapp/src/main/webapp/WEB-INF/web.xml">
            <webinf dir="${source.path}/mywebapp/src/main/webapp/WEB-INF/" includes="**/*"/>
            <lib dir="${dist.path}/" includes="*.jar"/>
            <classes dir="${source.path}/mywebapp/src/main/resources/" includes="**/*"/>
            <fileset dir="${source.path}/mywebapp/src/main/webapp/">
                <include name="**/*.jsp"/>
            </fileset>
            <fileset dir="${source.path}/mywebapp/src/main/webapp/">
                <include name="main/**/*"/> 
            </fileset>
        </war>
    </target>

<target name="compileear" description="Compile Ear file">
        <ear destfile="${source.path}/myear/src/main/application/WebApp.ear" appxml="${svn.working.project.path}application.xml">
            <metainf dir="${source.path}/mywebapp/src/main/webapp/META-INF"/>
            <fileset dir="${dist.path}/" includes="*.war"/>
        </ear>
    </target>

THanks @!

Ответы [ 4 ]

4 голосов
/ 08 сентября 2011

@ huahsin68: убедитесь, что вы используете WAS JDK для компиляции классов, которые вы упаковываете как часть вашего файла военных действий.Если вы также используете ant для компиляции, убедитесь, что ANT использует WAS JDK в качестве среды java для запуска.

На сервере systemout.log и startServer.log должно быть больше журналов.Проверьте это.

Если вы используете IDE, например, eclipse, установите уровень соответствия проекта J2EE1.5, очистите и восстановите.

1 голос
/ 09 сентября 2011

У меня проблема решена.Это связано с отсутствующими свойствами source в задаче javac ant.Как упомянуто в документации ANT для source properties:

Обратите внимание, что значение по умолчанию зависит от JVM, в которой работает Ant.Мы настоятельно рекомендуем всегда указывать этот атрибут.

Рекомендуется указать версию Java, которая будет использоваться для компиляции.Ниже приведен пример использования свойств источника:

<javac source="1.6"/>

THanks @!

1 голос
/ 08 сентября 2011

Похоже, вы пытаетесь развернуть совместимые с J2ee 1.3 / 1.4 WAR / EAR в WAS 7, который поддерживает Java EE 5. Проверьте свои application.xml и web.xml, чтобы узнать, используете ли вы правильные версии схемы. Также проверьте конкретные дескрипторы развертывания IBM. Я нашел эту ссылку на веб-сайте поддержки WAS.

0 голосов
/ 07 августа 2015

У меня было то же исключение, когда я устанавливал простое EAR в сферу: [Исключением root является org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: dd_in_ear_load_EXC_], и причина была в том, что WAR внутри EARбыл распакован.Итак, я построил новый EAR с упакованной WAR внутри, и это сработало.В моем случае я использую MAVEN, и плагин (наблюдать тег распаковать со значением false )

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.10</version>
            <configuration>
               <modules>
                  <webModule>
                     <groupId>com.javaen</groupId>
                     <artifactId>myApp</artifactId>
                     <uri>myWar.war</uri>
                     <bundleFileName>myWar.war</bundleFileName>
                     <contextRoot>/myWar</contextRoot>
                     <unpack>false</unpack>
                  </webModule>
               </modules>
            </configuration>
         </plugin>

Надеюсь, это поможет вам, с уважением

...