國網SG-UAP 開發平台 RestExceptionResolver 錯誤解決方法


報錯原信息:

SG-UAP :ERROR RestExceptionResolver:141 - java.lang.StringIndexOutOfBounds
Exception: String index out of range: -6 
at java.lang.String.substring(String.java:1937)
at java.lang.String.substring(String.java:1904)
at com.sgcc.uap.rest.annotation.processors.QueryRequestParamArgumentResolver.resolveArgument(QueryRequestParamArgumentResolver.java:72)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:75)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:156)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at com.sgcc.uap.kernel.spring.ModuleWebDispatcher.doDispatch(ModuleWebDispatcher.java:211)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:790)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
at com.sgcc.uap.kernel.web.adaptor.ModuleServletAdaptor.service(ModuleServletAdaptor.java:119)

 

問題分析:

  1. 首先這個是UAP的Spring的REST異常, 通常是 REST輸入的數據格式不正確]。
  2. 再根據Exception: String index out of range: -6 索引值越界,判斷是有數據輸入越界, 很有可能是空的間隔符造成的。
  3. 之后查找報錯使用的REST路徑和JS 方法,發現Json有錯誤和異常的可能性。
1 function _dropDown_changed(){
2         var restClient = new mx.rpc.RESTClient();
3         var data ={"":""};
4         var url = config_index.mappath("~/rest/config/getTable");
5         var ret = "";
6         restClient.post(url, data, function(ret){
7             _ConfigDropEdt.setItems(eval(ret));
8         });
9     }

修改之后,不在報錯,功能也能使用了。

  

1 function _dropDown_changed(){
2         var restClient = new mx.rpc.RESTClient();
3         var data = "";//取消原先的{"":""};
4         var url = config_index.mappath("~/rest/config/getTable");
5         var ret = "";
6         restClient.post(url, data, function(ret){
7             _ConfigDropEdt.setItems(eval(ret));
8         });
9     }

疑惑的地方:本地tomcat啟動服務沒有問題,部署到weblogic上出現錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM