为什么不兼容的Java EE版本会从WebSphere抛出错误



我在部署我的应用程序时使用的是websphereallationserver版本7.0.0.13。war是使用Ant 1.8.2版本构建war和ear文件的。当我通过WebSphere安装应用程序时,我遇到了以下错误:

EAR文件可能已损坏和/或不完整。确保应用程序是在一个兼容的Java(TM)平台,企业版WebSphere(R)应用程序当前版本的(Java EE)级别服务器。

com.ibm.websphere.management.application.client.AppDeploymentException[根异常是org.eclipse.jst.j2ee. commonarchiveecore .internal.exception. deploymentdescriptorloadexeption:dd_in_ear_load_EXC_]

我可以知道问题的原因吗?还是我错过了在Ant脚本中配置一些东西?下面是编译WAR和EAR的ANT脚本。

<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>

谢谢@ !

@huahsin68:确保使用WAS JDK来编译打包为war文件一部分的类。如果你也使用ant来编译,确保ant使用WAS JDK作为java环境来运行。

服务器的systemout.log和startServer.log必须给出更多的日志。检查。

如果您使用的是eclipse之类的IDE,请将项目遵从性级别设置为J2EE1.5,然后清理并重新构建。

我已经解决了这个问题。这是由于javac ant任务中缺少属性。正如ANT文档中提到的属性:

请注意,默认值取决于运行Ant的JVM。我们强烈建议始终指定此属性。

建议指定将要用于编译的java版本。下面是源属性的示例用法:

<javac source="1.6"/>

谢谢@ !

似乎您正在尝试在支持Java EE 5的WAS 7中部署兼容j2ee 1.3/1.4的WAR/EAR。检查application.xml和web.xml,看看是否使用了正确的模式版本。还要检查IBM特定的部署描述符。我在WAS支持网站上找到了这个链接

当我在websphere中安装一个简单的EAR时,我遇到了相同的异常:[根异常是org.eclipse.jst.j2ee. commonarchiivecore .internal.exception. deploymentdescriptorloadexception: dd_in_ear_load_EXC_],原因是EAR内部的WAR被解包了。所以,我建了一个新的EAR,里面装了一个WAR,它工作了。在我的情况下,我使用MAVEN和插件是(观察标签unpackfalse值)

        <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>

我希望这对你有帮助,regards

相关内容

  • 没有找到相关文章

最新更新