0
votes

Comment résoudre BadMessageException: 400 Impossible d'analyser le problème de contenu de formulaire tout en migrant Java7 sur Java8 dans l'application Spring?

à cause de Java 7 fort> obsolète par App-moteur, nous avons migré notre application vers Java 8 forte> mais après avoir migré la demande, nous obtenons org.eclipse.jetty .http.badmessagereException: 400 Impossible d'analyser le contenu de formulaire strong> après avoir soumis le formulaire HTML.

Quelqu'un peut m'aider à la solution de cette solution? P>

Nous utilisons: strong> printemps 3.1.0 et java 8 p>

Voici ma pile complète: stry> p>

message d'exception est: p>

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


3 commentaires

Je pense que vous devrez peut-être mettre à jour la version de printemps à 4 car le printemps 3 est compilé avec Java 7.


Est-ce la version de la version de printemps?


Après avoir débogué le code que j'ai constaté que les valeurs de forme ne sont pas décodées correctement: j'ai trouvé une erreur dans ce symbole ( '). La déclaration avec ce symbole codé correctement par processeur HTML mais incapable de décoder. REMARQUE: Nous ne faisons aucun codage et décodage de manière pragmatique. Cela se fait par interne. Quelqu'un peut-il suggérer comment résoudre ce problème?


3 Réponses :


1
votes
  • Pour résoudre ce problème, vous devez définir Accepter-Charset = "utf-8" dans formulaire tag Parce que la jetée utilisait uf-8 pour décoder la demande.

0 commentaires

0
votes

Avez-vous essayé d'utiliser le caractère de printempsFilter?

HTTPS : //docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/characterencodingfilter.html

avec SETFORCECODING (VRAI)


0 commentaires

0
votes

Essayez de configurer multipart-config dans web.xml xxx

ou ajoutez le code suivant si dans le démarrage à ressort xxx


0 commentaires