2010-02-04 74 views
16

在IntelliJ中,當我嘗試編譯時,出現這個奇怪的錯誤。在IntelliJ中找不到類文件

Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found 

我知道,這似乎是很明顯的問題是什麼,但已經花了太多的時間在這個問題上我現在把我的信任你!

我使用ideaCommunity-9,我爲JBoss創建了一個全局庫,其中包含所有JBoss jar包括ejb3-persistence.jar。我的模塊包含這個庫,我已經將它移到了依賴關係的頂部。 在classpath中沒有其他地方我有一個javax.persistence.ManyToOne類,它也在IntelliJ中打開,沒有問題。
如果我打開獲取編譯錯誤的文件,IntelliJ顯示沒有問題,並按Ctrl + B導航到類文件。
代碼也是用ant編譯的,在這裏它工作正常。

除了上面的錯誤,我還得到了六個沿着相同路徑(表名等)的其他人 - 所有這些都與JPA相關。我還收到一條消息,說:「請向JDC yada yada yada提交錯誤。」

+0

你可以用鍵盤快捷鍵 + N打開班級'ManyToOne'嗎? – 2010-02-04 12:52:57

+0

是的,我沒有問題查看ManyToOne的類文件。它給了我一個位於ejb3-persistence.jar中的位置,它又位於JBoss中。它也有cascade()方法。 – homaxto 2010-02-04 12:55:39

回答

29

嘗試勾選您的依賴關係中的「導出」複選框。

我的意思是:項目結構 - >模塊 - >依賴關係,在那裏你可以看到包含在模塊中的庫。您還應該在「導出」列中的每個庫附近看到一個複選框。

+0

我有一個類似的問題(不同的註釋相同的錯誤)。這對我有效。謝謝! – user127386 2010-02-17 06:34:00

1

和這個SO question是不是很相似?

該解決方案有添加所有的JBoss的jar(你沒有),而且所有的持久相關的庫(如Hibernate)

請參見本JBoss project configuration例如:

alt text http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg

在總之,ejb3-persistence.jar可能不是這裏的問題,只是其他元素缺失的症狀。
或者,如果是問題,可能與它沒有正確部署的事實有關(對於WebApp configuration)。

0

這是一個想法: 也許你有多個版本的jar文件。 使用文件管理工具(如Total Commander)在文件夾層次結構中搜索文件ejb3-persistence.jar, 。 在您的類路徑中出現多個文件可能會使IntelliJ Idea 無法識別正確的jar中的適當類。

0

有類似的問題(「無法找到班春... DefaultResourceLoader即使它在我的Maven依賴),並沒有重新驗證緩存的調整量似乎幫助。吹走我的$ HOME/.Idea *路徑和(基本上)從頭開始修復它爲我。至少現在...

2

我敢肯定,現在回答爲時已晚,但我不得不按照不同的方法解決此錯誤問題

我必須將其創建爲全局庫並將該庫添加到模塊,然後只解決錯誤。

Add this as a global library

Then add that library as dependency to the project

0

我正在試圖執行一個.groovy測試類,它引用的.groovy文件(位於一個子模塊的源目錄的根目錄時class not found錯誤消息 - 即,沒有包)。

將源文件.groovy整合到一個包中,爲我解決了這個問題。

移動:

src/main/groovy/RunMe.groovy 

src/main/groovy/somePackage/RunMe.groovy 
0

在的IntelliJ我得到了這個問題,當我建立在文件級別(按Ctrl + Shift + F9)。

原因是,我在同一個maven項目中的其他文件發生了變化,沒有被選中。

我通過在項目一級建立解決它(的IntelliJ中,按Ctrl + Shift + F9選擇Maven項目)

4

就在今年得到了自己,但這些事情不都是我的問題。我從github上下載了一個項目,然後在嘗試運行junit測試後以問題J打開該問題。

解決方案:項目結構 - >模塊 - > 'PROJECT_NAME' - >源(標籤) - >點擊src文件夾 - >標記爲:來源

這應該突出SRC是藍色和所有的class文件應該用C代替看起來像普通文件的圈子。嘗試再次運行測試,看看是否有這樣做。