我只想創建一個類的對象,但調試時出現此錯誤。有人可以告訴我問題是什麼嗎?這段代碼的位置在一些Spring(2.5)服務類中。com.sun.jdi.InvocationException發生調用方法
有一個類似的問題:OJB Reference Descriptor 1:0 relationship? Should I set auto-retrieve to false?
非常感謝〜
我只想創建一個類的對象,但調試時出現此錯誤。有人可以告訴我問題是什麼嗎?這段代碼的位置在一些Spring(2.5)服務類中。com.sun.jdi.InvocationException發生調用方法
有一個類似的問題:OJB Reference Descriptor 1:0 relationship? Should I set auto-retrieve to false?
非常感謝〜
的根本原因是,當調試Java調試接口將調用的toString()類,以顯示在類信息彈出框,所以如果toString方法沒有被正確定義,可能會發生這種情況。
謝謝,它的工作 – 2017-05-18 13:50:40
我在Eclipse中調試時也有類似的異常。當我對一個物體進行掩蓋時,彈出框顯示一條com.sun.jdi.InvocationException
消息。我的根本原因不是我的課程的方法,而是hashCode()
方法。它導致NullPointerException
,導致在調試過程中出現com.sun.jdi.InvocationException
。一旦我處理了空指針,一切都按預期工作。
所以我在這裏有同樣的問題。發現我的域名實例正在從休眠會話中分離出來。我使用isAttached()
來檢查並附加域使用d.attach()
在eclipse調試器中禁用變量窗口右上角的「顯示邏輯結構」按鈕/圖標解決了它,在我的情況。
我,當了toString被定義爲這樣的相同的異常被拋出:
@Override
public String toString() {
return "ListElem [next=" + next + ", data=" + data + "]";
}
凡ListElem
是一個鏈表元素,我創建了一個ListElem
這樣:
private ListElem<Integer> cyclicLinkedList = new ListElem<>(3);
ListElem<Integer> cyclicObj = new ListElem<>(4);
...
cyclicLinkedList.setNext(new ListElem<Integer>(2)).setNext(cyclicObj)
.setNext(new ListElem<Integer>(6)).setNext(new ListElem<Integer>(2)).setNext(cyclicObj);
這有效導致無法打印的循環鏈接列表。感謝指針。
嗯,這可能是因爲上面提到的其他幾件事情。在我的情況下,問題是一樣的,但理由是另一回事。
在一個類(A)中,我有幾個對象,一個對象是另一個類(B)和其他一些對象。在此過程中,B類中的一個對象(String)變爲null,然後嘗試通過父類(A)訪問該對象。
因此,控制檯會拋出零點異常,但eclipse調試器會顯示上述錯誤。
我希望你能留下。
這很有幫助+1 – mattymanme 2017-01-12 19:18:05
可能有兩個原因,一個元素不存在:
你會得到com.sun.jdi。當你運行Debug並且你將鼠標懸停在對WeBElement的引用上時(這與Selenium和Java有關),InvocationException?
我們用下面的,但如果由於惡劣XPath或不存在的元素(有效的XPath語法)返回false不能區分:
public static boolean isElementDisplayed(WebElement element) {
boolean isDisplayed = false;
try {
isDisplayed = element.isDisplayed();
} catch (NoSuchElementException e) {
;// No Worries
}
return isDisplayed;
}
刪除hashCode()
和equals()
解決了我的問題。就我而言,我使用了Apache的commons-lang哈希代碼,並且等於用於手動創建非靜態類的構建器,因此編譯器不會拋出任何異常。但是在運行時它引起了調用異常。
我曾經有過同樣的問題。在我的情況下,toString()方法被嚴重創建。要精確靜態最終變量被列入toString方法時,開發者形成我的球隊被分到代碼清理任務,並添加的toString(),hashCode()方法的代碼和equals()方法來域對象在以往任何時候可能。但是在類中因爲過度查看它,所以他包含導致「com.sun.jdi.InvocationException」的最終靜態變量,只有當我懸停在具有異常的對象上時,纔會在調試中看到此異常。
在我的情況下,這是由於對象引用過時。 我使用自動化webdriver的硒我的應用程序,所以我鍵入的東西到一個文本框,然後導航到另一個頁面,所以當我回來的前一頁上,該對象得到陳舊。 因此,這是導致例外,我再次初始化的元素來處理它 - PageFactory.initElements(司機,的Test.class;
這是我的情況
我有一個BO類學生其具有許多到一映射到另一個BO類類(其他研究了類)。
我想將數據保存到另一個表中,其爲具有外鍵都學生和類的。在執行某些情況下,我帶來了列表的學生在某些條件下,每個學生將有類類的引用。
示例代碼: -
Iterator<Student> itr = studentId.iterator();
while (itr.hasNext())
{
Student student = (Student) itr.next();
MarksCardSiNoGen bo = new MarksCardSiNoGen();
bo.setStudentId(student);
Classes classBo = student.getClasses();
bo.setClassId(classBo);
}
在這裏你可以看到,我同時設置學生和類參考BO我想保存。但在調試時,我檢查了student.getClasses()
它顯示了這個異常(com.sun.jdi.InvocationException
)。
我發現的問題是,使用提取HQL 查詢的學生名單後,我沖洗和關閉的會議。當我刪除session.close();
聲明時,問題解決了。
當我最終將所有數據保存到表格中時,會話關閉(MarksCardSiNoGen)。
希望這會有所幫助。
我在Eclipse中得到了類似的異常。這是由於java.lang.StackOverflowError
錯誤。我在子類中覆蓋了toString()
方法,它有JoinColumn
,它使用父類的對象返回字符串,從而導致循環依賴。嘗試從toString()
中刪除該對象,它會起作用。
當我使用輔助數據庫配置的懶加載實體字段(Spring Boot with 2 database configs - lazy loading with second config does not work)時,我收到了com.sun.jdi.InvocationException occurred invoking method
。臨時解決方案是增加FetchType.EAGER
。
在沒有任何源代碼或堆棧跟蹤的情況下,很難猜測出問題所在。 – 2010-11-08 15:37:30
我想通了,類的toString()方法可能會拋出NullPointerException,如果調用,當我糾正它,錯誤消失,但我不知道這是怎麼發生的? – xyy 2010-11-09 01:45:04
好的工作xyz。你能否自己發佈問題的答案,然後接受答案,以便我們能夠解決這個問題?另外,如果他們解決了您的問題,則需要接受以前問題的答案。 – Zecas 2012-05-24 14:17:45