2010-10-20 192 views
2

我已經從Sun安裝了Eclipse for Java EE和Java EE SDK,並試圖創建(我的第一個)Java EE應用程序。未找到javax.ejb包(Eclipse)

我創建了一個EJB項目,然後使用Eclipse自己的嚮導添加了一個會話bean,並找不到包javax.ejb!

我將Java EE SDK配置爲目標運行時環境,將JDK 1.6配置爲JRE。

這是怎麼回事!?如果不是來自Java EE SDK或適用於Java EE開發人員的Eclipse,此軟件包來自哪裏?

回答

1

我假設你有用於Eclipse的Java EE開發工具的WTP。在項目屬性中,選擇Project Facets,確保添加了一個具有EJB支持的J2EE運行時(例如JBoss),然後爲您的項目啓用EJB Module facet。您還可以使用File/New .../Project/EJB Project嚮導創建一個EJB項目,但您仍然需要添加EJB運行時,例如下載並安裝JBoss服務器。

3

我無法重現您的問題。我生成使用GlassFish的測試EJB項目(這就是你在Java EE SDK得到吧?)作爲目標運行時

alt text

而該項目肯定包括javax.ejb類作爲依賴性:

alt text

0

感謝您的幫助球員。是的,它看起來Glassfish包含在Java EE SDK中(儘管這並不明顯)。我認爲這個問題是針對這個問題的,因爲運行時沒有正確引導庫(可能需要選擇安裝中的'glassfish'子文件夾 - 儘管沒有警告這種方法沒有奏效)。

隨着Pascal提到,我下載並安裝了Glassfish 3本身和一個Glassfish'服務器適配器'(在添加新的服務器運行時環境時可用)。現在,在定位Glassfish運行時環境時,它促使我選擇glassfish子文件夾,因此現在它可以工作。

感謝您的幫助,這是一個陡峭的學習曲線... :)

0

javax.ejb包中包含與EJB容器的服務器。一旦您配置了目標運行時,當您創建ejb項目時,該軟件包將被添加到您的項目庫

0

右鍵單擊您的項目。 轉到屬性。 單擊目標運行時。 檢查JBoss運行時。 單擊確定。

該jar文件位於服務器庫中。

1

javax.ejb軟件包不提供標準的Java下載。如果你的項目依賴於它,你需要明確地下載相關的jar並把它放到你的構建路徑中。本主題中的某些答案建議您下載應用程序服務器(glassfishjboss)特定的jar。這並不理想。您應該使用應用程序服務器不可知的工件來滿足編譯時間依賴性。包含這個包的標準工件是javaee-api。只要將它放在構建路徑中,Eclipse就會停止抱怨。另外,如果您使用的是依賴管理工具,比如Maven的,使用POM以下依賴性:

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>8.0</version> 
    <scope>provided</scope> 
</dependency>