2014-07-08 84 views
1

我正在尝试将EAR文件编译并部署到WebSphere 6.1应用服务器(WAS) - 而不是 Rational Application Developer(RAD)或Liberty。我正在尝试将编译和部署移植到构建服务器的初始阶段。编译时我完全没有问题。然而,当我试图部署EAR我得到一个AppDeploymentException:部署手动Websphere时发生AppDeploymentException EAR

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. 

我读的地方(现在找不到链接),这是文件必须使用IBM JDK进行编译。所以我installed that并重新编译,但得到了同样的问题。

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

This question表明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文件的根目录。

希望有人有一个建议!

回答

1

WebSphere v6.1需要Java EE 1.4应用程序。请确保您的应用程序:

  • 与在大多数Java 1.5的兼容性
  • 你有耳朵的META-INF目录中的application.xml文件,它正确地引用网络模块编译。
  • 你的web.xml在WEB-INF文件夹中的WAR文件

检查模式两种描述:

的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),并已取代耳朵的所有其他部分,但它仍然无法正常工作。我补充了我认为的答案。 – AndyJ

0

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

似乎罪魁祸首是我的webapp中的MANIFEST.MF文件没有CLASSPATH属性,而RAD生成的清单有一个空白的CLASSPATH属性。一个文件是50个字节,一个是25.几个字节有什么不同。