首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解决BadMessageException :在春季应用程序中将java7迁移到java8时无法解析表单内容问题?

如何解决BadMessageException :在春季应用程序中将java7迁移到java8时无法解析表单内容问题?
EN

Stack Overflow用户
提问于 2019-01-16 15:31:04
回答 3查看 8.1K关注 0票数 0

由于应用程序引擎所反对的org.eclipse.jetty.http.BadMessageException: 77,我们已经将应用程序迁移到java 8,但是在迁移应用程序之后,在提交html表单后,我们将无法解析表单内容消息。

有人能帮我解决这个问题吗?

我们正在使用的 : Spring3.1.0和Java8

这里是我的完整堆栈跟踪:

异常消息是:

代码语言:javascript
代码运行次数:0
运行
复制
Request processing failed; nested exception is org.eclipse.jetty.http.BadMessageException: 400: Unable to parse form content
 Complete stacktrace is : org.springframework.web.util.NestedServletException: 
 Request processing failed; nested exception is org.eclipse.jetty.http.BadMessageException: 400: Unable to parse form content  at
 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)  at
 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)  at
 javax.servlet.http.HttpServlet.service(HttpServlet.java:707)  at
 javax.servlet.http.HttpServlet.service(HttpServlet.java:790)  at
 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)  at
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1772)  at
 com.gulfinfotech.eflow.filters.NameSpaceGoogleSecurityFilter.doFilter(NameSpaceGoogleSecurityFilter.java:207)  at
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)  at
 org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:147)  at
 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)  at
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)  at
 com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)  at
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)  at
 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)  at
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)  at
 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)  at
 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)  at
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)  at
 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)  at
 com.google.apphosting.runtime.jetty9.ParseBlobUploadHandler.handle(ParseBlobUploadHandler.java:119)  at
 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1182)  at
 com.google.apphosting.runtime.jetty9.AppEngineWebAppContext.doHandle(AppEngineWebAppContext.java:171)  at
 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)  at
 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)  at
 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)  at
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)  at
 com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:296)  at
 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)  at
 org.eclipse.jetty.server.Server.handle(Server.java:539)  at
 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)  at
 com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.java:202)  at
 com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(RpcConnector.java:81)  at
 com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)  at
 com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:699)  at
 com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:661)  at
 com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:631)  at
 com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:825)  at
 com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:273)  at
 java.lang.Thread.run(Thread.java:745) Caused by: org.eclipse.jetty.http.BadMessageException: 400: Unable to parse form content  at
 org.eclipse.jetty.server.Request.getParameters(Request.java:372)  at
 org.eclipse.jetty.server.Request.getParameter(Request.java:1014)  at
 org.springframework.web.context.request.ServletWebRequest.getParameter(ServletWebRequest.java:117)  at
 org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.getRequestValueForAttribute(ServletModelAttributeMethodProcessor.java:98)  at
 org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.createAttribute(ServletModelAttributeMethodProcessor.java:73)  at
 org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:102)  at
 org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:74)  at
 org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:155)  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
 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)  at
 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)  at
 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) ... 38 more
 Caused by: org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! byte 92 in state 0  at
 org.eclipse.jetty.util.Utf8Appendable.appendByte(Utf8Appendable.java:247)  at
 org.eclipse.jetty.util.Utf8Appendable.append(Utf8Appendable.java:157)  at
 org.eclipse.jetty.util.UrlEncoded.decodeUtf8To(UrlEncoded.java:522)  at
 org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:572)  at
 org.eclipse.jetty.server.Request.extractFormParameters(Request.java:521)  at
 org.eclipse.jetty.server.Request.extractContentParameters(Request.java:453)  at
 org.eclipse.jetty.server.Request.getParameters(Request.java:368) ... 53 more
EN

回答 3

Stack Overflow用户

发布于 2019-01-21 09:58:57

  • 要解决这个问题,您需要将accept-charset="UTF-8"设置为form标记,因为jetty使用UTF-8来解码请求。
票数 1
EN

Stack Overflow用户

发布于 2019-06-06 17:36:18

Stack Overflow用户

发布于 2020-10-06 06:57:03

尝试在web.xml中设置多部件配置

代码语言:javascript
代码运行次数:0
运行
复制
<multipart-config>
    <location>/tmp</location>
    <max-file-size>20848820</max-file-size>
    <max-request-size>1073741824</max-request-size>
    <file-size-threshold>1048576</file-size-threshold>
</multipart-config>

如果在spring引导中添加以下代码

代码语言:javascript
代码运行次数:0
运行
复制
    /**
     * multipart config
     */
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setMaxFileSize("1024MB");
        factory.setMaxRequestSize("1024MB");
        return factory.createMultipartConfig();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54220389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档