Avatar billede tuvix Nybegynder
04. november 2005 - 10:20 Der er 11 kommentarer og
1 løsning

Meget data i request.

Jeg har lavet en jsp side, hvorfra jeg skal ha overført en meget stor mængde data (>2mb) til en servlet. Men når jeg forsøger at bruge request.getParameter() i min servlet, får jeg følgende fejl:
java.lang.NullPointerException
    org.apache.catalina.connector.Request.parseParameters(Request.java:2340)
    org.apache.catalina.connector.Request.getParameterNames(Request.java:1038)
    org.apache.catalina.connector.RequestFacade.getParameterNames(RequestFacade.java:359)
    org.apache.jsp.SendMail_jsp._jspService(org.apache.jsp.SendMail_jsp:122)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)

Hvis jeg kører det samme kode med en lille data mængde, får jeg ingen fejl. Jeg bruger JBoss4.0.2 som applikationsserver. Er der nogen som ved hvad der går galt?
Avatar billede arne_v Ekspert
04. november 2005 - 10:37 #1
hvordan kommer du fra din JSP side til din servlet ?  (et lille kode fragment)
Avatar billede tuvix Nybegynder
04. november 2005 - 10:48 #2
Det er en ganske almindelig submit af siden, hvor jeg submitter via noget javascript.

form2.submit();

Jeg glemte lige at nævne at inden jeg bruger request.getParameter, som giver fejlen, bruger jeg request.getQueryString() og dette giver ingen fejl. Så det ser ud til at det kun er det felter der bliver submittet det er galt med og ikke hele requestet.
Avatar billede arne_v Ekspert
04. november 2005 - 10:51 #3
GET eller POST ?
Avatar billede tuvix Nybegynder
04. november 2005 - 10:52 #4
POST
Avatar billede arne_v Ekspert
04. november 2005 - 10:53 #5
Kan du hente data med request.getInputStream eller request.getReader ?
Avatar billede arne_v Ekspert
04. november 2005 - 10:54 #6
har du prøvet at monitorere trafikken mellem browser og server for at se
om browseren overhovedet sender data ?
Avatar billede tuvix Nybegynder
08. november 2005 - 11:45 #7
Undskyld den lange svartid. Jeg har nu prøvet med både getInputStream og getReader og i begge tilfælde var dataen med i requestet. Hvis jeg læser fra requestet med en af ovenstående, kan jeg godt bruge request.getParameter() uden at få en fejl, men jeg får ikke returneret nogle data fra metoden. Så jeg kan altså godt se dataene i mit request men ikke læse dem.
Avatar billede arne_v Ekspert
08. november 2005 - 11:55 #8
ligner en eller Tomcat bøf

men er det så ikke bare at læse det med getInputStream/getReader og
selv håndtere ophugning i felter ?
Avatar billede tuvix Nybegynder
08. november 2005 - 13:05 #9
Det havde jeg også tænkt på, men indholdet fra mit request set lidt specielt ud. Der er blevet indsat escape characters i stedet for alle special tegn. Her er et udsnit. Det er starten af en xml.
%3C%3Fxml+version%3D%221.0%22+encoding%3D%22ISO-8859-1%22+standalone%3D%22no%22+%3F%3E%3Croot%3E

Hvis jeg skal bruge dette skal jeg jo finde alle de tegn der er erstattet og finde ud af hvad de er erstattet med. Med mindre du har et andet forslag.
Avatar billede arne_v Ekspert
08. november 2005 - 13:06 #10
det er korrekt

men kan URLDecode.decode ikke ordne det ?
Avatar billede tuvix Nybegynder
08. november 2005 - 13:35 #11
Det var bare det der skulle til. Mange tak for hjælpen. Hvis du lige gider droppe et svar, så skal jeg acceptere det.
Avatar billede arne_v Ekspert
08. november 2005 - 13:37 #12
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester