2013-08-23 44 views
0

我的問題是以下幾點:的Java EE的GlassFish錯誤編譯非現有的命名查詢

在一個實體類,我已經添加了NamedQuery未在應用程序部署到服務器的時間編譯好。問題是我在JPQL語句中使用了錯誤的實體名稱,所以我決定暫時刪除那個有問題的NamedQuery,而我考慮一些替代方法。

因此,一切正常,應用程序工作正常,突然間,當我試圖部署實體bean與上述有問題的NamedQuery時,我開始得到同樣的錯誤。有趣的是,這樣的NamedQuery不存在於我的代碼中的任何地方 - 我已經刪除了對它的所有引用,所以它不可能仍然可以部署到服務器,但不知何故它可以。就像Glassfish擁有它們自己的那些實體bean的副本並繼續部署它們,儘管它們在此期間被修改。

隨意問我關於這個問題的任何其他信息。

+0

看起來像一個熱部署問題。取消部署應用程序,重新啓動glassfish並重試。如果這不能解決問題,您可以使用提到的類的代碼更新您的問題。 – unwichtich

+0

你如何部署應用程序? – NBW

+0

我使用NetBeans部署應用程序。右鍵單擊應用程序項目,然後從上下文菜單中選擇「部署」選項。其餘的工作由NetBeans和GlassFish執行。 – cw3le

回答

0

我設法通過簡單地重新啓動Windows來解決問題。

嘗試過多次取消部署和部署應用程序,很多glassfish服務器重新啓動,但沒有一個給了我結果。看起來glassfish有一些它自己的緩存,它存儲了這些實體類的舊版本,並且由於某些未知原因拒絕部署新類。