2014-07-23 46 views
0

我正在調試通過Arquillian部署在JBoss 7 AS上的代碼的JUnit測試。 調試器停止在斷點處,但執行舊版本的代碼(例如,它通過空行),同時在屏幕上看到新版本。Eclipse調試器沒有看到代碼中的更改

我找到了this question:我刪除了舊的遠程調試配置並創建了一個新的,刪除了默認的源代碼並附加了新的(Source --> Add --> Java Project,並選擇了我的項目)。這並沒有解決我的問題。

This answer建議清理項目。我的項目由maven管理,所以我從控制檯運行mvn clean install。這沒有幫助。

由於JBoss由Arquillian啓動,如果我打開了自動發佈(Window --> Preferences --> Server --> Launching),但我認爲它不重要,但無論如何它都會打開。

我現在經常遇到這個問題,在看似隨機的時刻 - 我一遍又一遍地運行相同的(工作)遠程調試配置,突然間我遇到了這個問題,即使我沒有改變源代碼在調試配置中。

這個問題的原因是什麼?解決問題的最快方法是什麼?

+0

你是什麼意思的舊版本的代碼?從你期待的新版本開始,你是在eclipse中還是從Eclipse之外更改代碼? 您可以嘗試插入任何空格/ new_line並再次保存代碼。它會在調試模式下在服務器上部署新版本。 – Neeraj

+0

@Neeraj,我只在Eclipse中編輯了我的代碼。插入新行並保存文件後,該更改未在服務器上部署。新的代碼行不被執行。 –

+0

我希望「自動構建」選項爲ON。如果你從命令行構建項目,那麼它不會反映eclipse中的變化。從命令構建項目與eclipse中的構建項目完全不同。 我的建議是在eclipse中建立項目,如果你希望你的改變應該在調試模式下發布在服務器上。 – Neeraj

回答

1

這個問題是由JBoss讀取其配置文件中的舊部署信息引起的。我用下面的行動,以強制重新部署:

  1. 轉到JBOSS_HOME/standalone/configuration
  2. 編輯standalone.arquillian.xml
  3. 刪除部署的信息(靠近文件末尾)。請參閱this answer
  4. (可選)從舊部署中刪除數據 - 在JBOSS_HOME/standalone文件夾temp,datalogs可以安全地刪除。請參閱this answer

我仍然不確定是什麼導致xml保留舊的部署信息,如果這可以避免。