Je suis en train d'analyser l'en-tête HTTP Date: Tue, 15 Nov 1994 08:12:31 GMT
pour un HttpServletRequest avec un appel à request.getDateHeader("Date")
mais obtenir l'exception suivante:Exception lors de l'analyse date de RFC1123 avec HttpServletRequest # getDateHeader()
java.lang.NumberFormatException: Tue, 15 Nov 1994 08:12:31 GMT
at org.mortbay.io.BufferUtil.toLong(BufferUtil.java:106)
at org.mortbay.jetty.HttpFields$Field.getLongValue(HttpFields.java:1479)
at org.mortbay.jetty.HttpFields.getLongField(HttpFields.java:720)
at org.mortbay.jetty.Request.getIntHeader(Request.java:728)
at javax.servlet.http.HttpServletRequestWrapper.getIntHeader(HttpServletRequestWrapper.java:106)
at javax.servlet.http.HttpServletRequestWrapper.getIntHeader(HttpServletRequestWrapper.java:106)
at com.google.appengine.tools.development.ResponseRewriterFilter$RequestWrapper.getDateHeader(ResponseRewriterFilter.java:417)
at com.example.ExampleServlet.doPost(ExampleServlet.java:93)
Qu'est-ce que je fais mal? La date de l'échantillon provient directement du HTTP specification, donc je m'attendrais à ce qu'il soit valide selon RFC 1123. Le servlet fait partie d'une application App Engine (sur le serveur de développement).
Avez-vous coupé cette trace de pile? Il ne contient aucune référence à 'getDateHeader' ou tout code que vous avez pu écrire. Pourriez-vous modifier votre question pour inclure le code que vous avez écrit et une trace de pile plus complète? – Kenster
@Kenster J'ai ajouté quelques lignes de plus à la trace de la pile (et j'ai rendu le nom de ma classe actuelle 'ExampleServlet'). Comme vous pouvez le voir, la servlet est hébergée sur Google App Engine. Je peux également poster la trace complète si nécessaire. L'appel réel dans 'doPost()' ressemble à ceci: 'Date date = new Date (request.getDateHeader (" Date "))'. – Drux