我們已經看到了這個多次,它似乎並沒有與我們的代碼相關,因爲我們的代碼都沒有在堆棧跟蹤中。我們正在使用澤西1.17,我們得到了,偶爾,這個錯誤:奇怪的澤西島錯誤:java.lang.StackOverflowError
java.lang.StackOverflowError at java.lang.String.toLowerCase(String.java:2496) at com.sun.jersey.core.util.StringIgnoreCaseKeyComparator.hash(StringIgnoreCaseKeyComparator.java:53) at com.sun.jersey.core.util.StringIgnoreCaseKeyComparator.hash(StringIgnoreCaseKeyComparator.java:48) at com.sun.jersey.core.util.KeyComparatorHashMap.keyComparatorHash(KeyComparatorHashMap.java:294) at com.sun.jersey.core.util.KeyComparatorHashMap.containsKey(KeyComparatorHashMap.java:359) at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:101) at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:104) at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:104) at ...
然後最後一行永遠重複(當然,直到計算器)。我們在1.18更多地看到了這一點,所以我們降級到了1.17,但現在我剛剛在那裏看到了它。
這些webservices工作99.9%的時間。這導致了jvm的麻煩。其他人看過這個?我究竟做錯了什麼?我們只安裝了普通的1.17版本,整個應用都是圍繞它建立的。
更新:由於有人在應用程序服務器中提出了一個循環,我們使用的是Tomcat 6和基本身份驗證。
「HTTPBasicAuthFilter.java:104'上的代碼是什麼? – fge
你正嘗試用一種循環來授權。有時Auth會對它們進行循環過濾,如果出現錯誤,您需要停止它們。 1.通過客戶端調用身份驗證,2.在應用程序中進行身份驗證呼叫3.服務需要身份驗證,4.身份驗證呼叫....這可以很容易地形成循環 – jeorfevre
我們不會在我知道的應用程序中進行身份驗證(我們使用tomcat和它的基本身份驗證)。另外,如果你注意到上面的巨大堆棧軌跡的其餘部分是在104行。所以第一個是101,其餘的在104。 – markthegrea