我们已经看到了这个多次,它似乎并没有与我们的代码相关,因为我们的代码都没有在堆栈跟踪中。我们正在使用泽西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