Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 长字符串缺少Spring post请求参数_Java_Jquery_Spring_Tomcat_Spring Mvc - Fatal编程技术网

Java 长字符串缺少Spring post请求参数

Java 长字符串缺少Spring post请求参数,java,jquery,spring,tomcat,spring-mvc,Java,Jquery,Spring,Tomcat,Spring Mvc,我的Spring控制器中有一个post方法,它接受一个名为wkt的请求参数。这是我的方法签名: @RequestMapping(value="/getNumberOfProperties", method=RequestMethod.POST) public String getEstimateForNumberOfProperties(@RequestParam("wkt") String wkt) { //code } 在我的jQuery中,我这样调用这个方法 $.post(web

我的Spring控制器中有一个post方法,它接受一个名为
wkt
的请求参数。这是我的方法签名:

@RequestMapping(value="/getNumberOfProperties", method=RequestMethod.POST)
public String getEstimateForNumberOfProperties(@RequestParam("wkt") String wkt) {
    //code
}
在我的jQuery中,我这样调用这个方法

$.post(webroot + "/project/getNumberOfProperties", {wkt : wktGeomFromServer})
这很有效。但是,对于太长的wkt字符串,我遇到了这个错误

org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'wkt' is not present
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:255) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:95) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:79) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:157) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:124) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) ~[spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945) [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) [servlet-api.jar:?]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) [servlet-api.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) [catalina.jar:7.0.41]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.41]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
那么,多久才算太长呢?在做了一些测试之后,我发现如果字符串的长度小于等于1971324,那么一切都正常。否则,我会得到上面的异常。我不知道这是否与Spring或tomcat等有关。此外,我已经用Chrome验证了wkt参数在所有情况下都会被发送,不管长度如何。因此,当Spring错误消息太长时,它对我来说没有多大意义。
1971324
是某个神奇的数字吗


有什么建议吗?

可能是服务器配置问题吗?例如,默认情况下,Tomcat有2MB的最大请求后内容大小。

检查HTTP请求是否已发送,我不太了解jquery。参数是在正文中发送的还是作为URL的一部分发送的?@Sotirios它是在正文中发送的(这就是为什么我切换到post方法来处理更长的参数)@JigarJoshi根据Chrome网络选项卡,参数肯定在那里,无论长度如何post参数大小都有限制。您可以签入服务器配置xml文件-行中的一个属性:maxPostSize。默认情况下,它的2MB(2097152字节)用于tomcat和JBoss。通过将此参数更改为neagtive值,可以将其配置为unlimited。对于Weblogic,这在默认情况下是无限的。你可以在这里找到一些服务器的信息:我想我的错误在这种情况下会有所不同。不过我会调查的。