我创建了Restful With Spring框架服务,我试图通过驱动程序Google Chrome包含调用Selenium Java的方法,但要创建对象WebDriver driver = new ChromeDriver ();
我生成了一个例外:
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.StackOverflowError
org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1302)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:859)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
causa raíz
java.lang.StackOverflowError
java.lang.Exception.<init>(Exception.java:102)
java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:89)
java.lang.reflect.InvocationTargetException.<init>(InvocationTargetException.java:72)
sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.json.JSONObject.populateMap(JSONObject.java:1015)
org.json.JSONObject.<init>(JSONObject.java:279)
org.json.JSONObject.wrap(JSONObject.java:1527)
org.json.JSONObject.populateMap(JSONObject.java:1017)
org.json.JSONObject.<init>(JSONObject.java:279)
org.json.JSONObject.wrap(JSONObject.java:1527)
org.json.JSONObject.populateMap(JSONObject.java:1017)
org.json.JSONObject.<init>(JSONObject.java:279)
org.json.JSONObject.wrap(JSONObject.java:1527)
主要课程中的独立运行顺利,但我需要服务Restful
答案 0 :(得分:1)
Java应用程序中的每个线程都有自己的堆栈,即存储方法调用和局部变量的位置。你提到的错误通常在这个堆栈已满时发生,基本上当前线程会对某些方法进行大量调用(这是一个快乐的情况;另一个方面是无限循环)。
尝试运行具有更高堆栈大小的java进程,并查看错误是否再次发生。这可以使用-Xss属性设置:-Xss4m
答案 1 :(得分:1)
我花了几个小时努力解决stackoverflow错误...希望这有助于某人
我犯了一个愚蠢的错误请参阅下面的代码段: -
代码不正确: -
Map abcWithKey = new HashMap<>();
abcWithKey.put("key_1", abcWithKey);
正确代码: -
Map abcWithKey = new HashMap<>();
abcWithKey.put("key_1", abc);
其中abc是一个地图,所以我没有添加abc(不同的地图)而是递归添加相同的地图。