2010-04-28 82 views
0

我真的很新,所以我希望不會犯任何可怕的錯誤。如果我有,我很抱歉。將WAR轉換成EAR和其他Glassfish故事

在我的項目中,我使用了tomcat並部署了WAR文件。但是現在有些老闆想要部署EAR文件。所以我們走了。

我第一次下載Glassfish(不知道它是否是像我這樣的新手的apropiate應用程序服務器),安裝它和所有(我甚至在autodeploy> __ <中部署了hello.war)。然後準備一個EAR文件。

從我所知道的,我只需要在Eclipse中創建一個企業應用程序項目並添加到模塊我的戰爭文件。這會自動更改application.xml文件(感謝eclipse項目!)。所以我將它導出到EAR文件並將其上傳到glassfish服務器。

奇蹟的奇蹟,它不起作用。

我也嘗試在這個新的閃亮玻璃魚中部署舊的WAR文件,但它在http-404上找不到錯誤。 Glassfish的似乎是說,我的項目是不是在〜/域/域1 /文檔根目錄。順便說一句,我使用的Windows和我知道的GlassFish和窗戶之間的一些問題,是由於一些更新打開的文件或這樣的。

所以我必須問: 首先,我是否正確地執行EAR包? 其次,我需要做一些特殊的配置到GlassFish服務器部署EAR和WAR文件?

謝謝!

+1

顯然有什麼不對勁......但考慮到這個問題的詳細程度,我並沒有最清楚的想法,即移動部件是否失控......甚至是什麼部件。您使用的Eclipse,GlassFish和GlassFish適配器的哪個版本爲 ?你是如何'上傳'(你的EAR)到GlassFish服務器的?您是如何將WAR文件部署到GlassFish的?有什麼有趣的域\ domain1 \ logs \ server.log – vkraemer 2010-04-28 17:16:40

+1

有一件事我已經在Eclipse中找到了glassfish連接器,當你使用WAR時,它可以與只有文件更改更新的分解WAR一起使用。在使用EAR時,它會在更新後重新部署重新打包的WAR文件。差異是驚人的。 – 2010-04-29 20:20:17

回答

5

如果您的應用程序沒有EJB,我認爲將它部署爲EAR沒有任何價值。

域名和網址應該以某種方式涉及您的域名。我是WebLogic/JBOSS用戶。有什麼方法可以在Glassfish中創建域?如果是的話,那就把EAR放進去。也許this會有所幫助。

+0

謝謝!我也認爲在WAR中部署EAR沒有任何價值,因爲它是一個簡單的項目。可悲的是,這不是我的決定。 感謝您的鏈接! 我繼續出現配置錯誤。 – Random 2010-04-28 14:53:37

2

在我的項目中,我使用了tomcat並部署了WAR文件。但是現在有些老闆想要部署EAR文件。所以我們走了。

得到這個決定的動機會很有意思。總的趨勢是使事情變得更簡單,而不是更復雜(例如Java EE 6中,也可以把EJB的直接直接進入WAR)。

我先下載Glassfish的(不知道這是否是對像我這樣的新手的apropiate應用服務器),instaled它和所有的(我甚至部署hello.war在自動部署> _ <)。然後準備一個EAR文件。

我非常喜歡GlassFish v3,它提供了一個非常高效的開發環境。而且我並不覺得複雜,簡單的需求,管理控制檯使友好,如果你不使用它。

(...)所以我將它導出到一個EAR文件並上傳到glassfish服務器。奇蹟的奇蹟,它不起作用。

檢查服務器日誌。

我也嘗試在這個新的閃亮玻璃魚中部署舊的WAR文件,但它在http-404上找不到錯誤。

您嘗試訪問哪個網址?您如何在管理控制檯中看到該應用程序。

所以我必須問:首先,我是否正確地做EAR包?

不知道,我不依賴於IDE。顯示你的耳朵結構(使用tree),顯示你的application.xml

我是否需要對glassfish服務器進行一些特殊配置才能部署EAR和WAR文件?

有幾種方法來部署一個WAR,耳(通過控制檯,通過autodeploy目錄,通過asadmin命令行工具),他們所有工作開箱。

1

首先,感謝您的回覆。我會盡力收集所有這些信息。 我認爲將其更改爲EAR文件的動機與「公司決策」有關,也可能是某人在服務器上安裝某個應用程序時不想編寫上下文,儘管我不是公司中的任何人來挑戰這個。我的錯。 他們還在使用Java EE 1.5。 我在我的Eclipse Galileo上安裝了Glasshfish 2.1和Glassfish 2.1連接器。我認爲它在eclipse conector,控制檯和web管理之間管理起來相當容易。我最終找到了一個可以做任何行動的地方。與Tomcat相比,它非常大,我感覺有點失落,但我試着緩慢地嘗試。

在我的EAR文件中,WAR文件不多,而在META-INF目錄中有我的application.xml和manifest.mf。我的application.xml寫着:

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" 
    id="Application_ID" version="5"> 
    <display-name>foo</display-name> 
    <module> 
    <web> 
     <web-uri>FOO.war</web-uri> 
     <context-root>foo</context-root> 
    </web> 
    </module> 
</application> 

我通過http://localhost:8080/foo訪問URL的server.log的節目(在西班牙,我將它翻譯我可以管理是最好的),由我使用Web服務來管理的方式玻璃魚,而不是贏得控制檯。

[#| 2010-04-29T09:46:59.722 + 0200 | INFO | sun-appserver2.1 | javax.enterprise.system.tools.deployment | _ThreadID = 26; _ThreadName = Thread-419; |與moduleid = foo |#]

[#| 2010-04-29T09:46:59.909 + 0200 | SEVERE | sun-appserver2.1 | org.apache.catalina.core.StandardContext | _ThreadID = 27; _ThreadName = Thread -418; _RequestID = 9bff8714-d870-4f30-8a7a-22dca0375b6b; | PWC1300:上下文中的資源初始化時出錯/ foo |#]

[#| 2010-04-29T09:46:59.909 + 0200 | SEVERE | sun-appserver2.1 | org.apache.catalina.core.StandardContext | _ThreadID = 27; _ThreadName = Thread-418; _RequestID = 9bff8714-d870-4f30-8a7a-22dca0375b6b; | PWC4430:文檔庫C:\孫\ SDK \ jdk的\ GlassFish的\域\ DOMAIN1 \文檔根目錄\ FOO不存在,或者它是無法讀取的目錄|#]

[#| 2010-04-29T09:46:59.925 + 0200 |嚴重|陽光appserver2.1 | org.apache.catalina.core。由於以前的錯誤|#]

[#|#]標準上下文| _ThreadID = 27; | 2010-04-29T09:46:59.925 + 0200 | INFO | sun-appserver2.1 | org.apache.catalina.core.StandardContext | _ThreadID = 27; _ThreadName = Thread-418; | PWC1240:WebModule [/ foo]容器還沒有啓動|#]

正如我所說的,我也嘗試直接使用WAR,但它也沒有工作。我部署了它(或者說它),然後它有一個漂亮的按鈕(在操作列)啓動Web服務,服務器給我http://localhost:4848/applications/webApplicationLinks.jsf?appID=FOO&contextRoot=/FOO(耳邊是foo,而戰爭是FOO),並將我重定向到一個頁面告訴我,如果服務器或監聽器沒有運行,則鏈接可能無法工作。下面的鏈接是http://localhost:8080/FOOhttp://localhost:8181/FOO(都不工作,在8080中的AKA http-404和在8181中的空白頁)。順便說一句,這個開始按鈕不可用在耳邊,我不喜歡那個。

至於server.log上的其他有趣的事情,它似乎沒有多說,但我可能是錯誤的,因爲我在服務器領域真的很新。