2014-07-08 82 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.幾個字節有什麼不同。