Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 部署手动Websphere EAR时发生AppDeploymentException_Java_Deployment_Gradle_Websphere_Websphere 6.1 - Fatal编程技术网

Java 部署手动Websphere EAR时发生AppDeploymentException

Java 部署手动Websphere EAR时发生AppDeploymentException,java,deployment,gradle,websphere,websphere-6.1,Java,Deployment,Gradle,Websphere,Websphere 6.1,我正试图在没有RationalApplicationDeveloper(RAD)或Liberty的情况下编译EAR文件并将其部署到WebSphere6.1AppServer(WAS)。我正处于尝试将编译和部署迁移到构建服务器的初始阶段。我对编译没有任何问题。但是,当我尝试部署EAR时,会得到一个AppDeploymentException: The EAR file could be corrupt and/or incomplete. Make sure that the applicatio

我正试图在没有RationalApplicationDeveloper(RAD)或Liberty的情况下编译EAR文件并将其部署到WebSphere6.1AppServer(WAS)。我正处于尝试将编译和部署迁移到构建服务器的初始阶段。我对编译没有任何问题。但是,当我尝试部署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文件必须使用IBMJDK编译。所以我重新编译了它,但遇到了同样的问题

类文件的主要版本(来自javap)是正确的,但我仍然对这个错误感到困惑,因为“工作”和“不工作”之间的唯一区别似乎是字节码本身。是否有其他内在的魔力要求这些文件由RAD构建

建议WebSphere 6.1的web.xml模式必须为2.4,但这对我没有影响。事实上,如果我使用一个工作EAR(通过RAD创建),并从中仅将类文件复制到由原始JDK/gradle进程创建的EAR中,它将工作

抱歉,我对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
我不确定这有多重要。提到的war文件位于EAR文件的根目录下


希望有人有一个建议

WebSphereV6.1需要JavaEE1.4应用程序。确保您的应用程序:

  • 编译时最多与Java 1.5兼容
  • 您在ear的META-INF目录中有application.xml文件,它正确地引用了web模块
  • web-INF文件夹中的war文件中有web.xml
检查两个描述符的架构:

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

web.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-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">


如何部署应用程序?

我从RAD导出了一个工作EAR文件,从基本构建过程导出了我的非工作EAR文件。我用定制的代码替换了WEB-INF/class目录,它工作了。我继续扩展自定义过程中的代码选择,替换RAD EAR文件中的相应部分,直到找到破坏它的地方


罪魁祸首似乎是webapp中的MANIFEST.MF文件没有CLASSPATH属性,而RAD生成的MANIFEST有一个空的CLASSPATH属性。一个文件是50字节,一个是25字节。几个字节的差别真大。

谢谢,这有助于澄清需求,但不是我的问题。我当时使用的是1.5版本(主要版本49),更换了耳朵的所有其他部分,但仍然无法正常工作。我补充了我认为是答案。