IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Pb HttpURLConnection => Error 500


Sujet :

Servlets/JSP Java

  1. #1
    Membre expérimenté Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut Pb HttpURLConnection => Error 500
    Bonjour,

    dans le cadre d'un projet à la boite, on me demande de créer un script en JSP pour tester le message de réponse envoyé par une URL
    Mon problème est que :
    si j'initialise ma variable urlString à : "http://monserveur/servlet/Servlet?form=TESTCONNEX";
    j'obtiens bien en reponse la page html comme quoi il a besoin du nom de serveur et des username/password

    mais dès que j'initialise ma variable urlString avec des & dedans :
    "http://monserveur/servlet/Servlet?form=TESTCONNEX&server=server.test.com&username=UserTest&pwd=UserTest";
    il me renvoit une erreur 500

    Je n'y connais rien (enfin pas grand chose) en JSP mais j'ai pondu ça à partir de diverses recherches sur le net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <%@page pageEncoding="UTF-8"%>
    <%@page contentType="text/html; charset=UTF-8"%>
    <%
    response.addHeader("Cache-Control", "no-cache");
    %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.text.*" %>
     
    <%@ page import="java.net.*" %>
    <%@ page import="java.io.*" %>
    <%
       out.print("Server Test");
       HttpURLConnection connection;
       String urlString = "http://monserveur/servlet/Servlet?form=TESTCONNEX&server=server.test.com&username=UserTest&pwd=UserTest";
       URL url    = new URL(urlString);
       String _cookie   ="";
       URLConnection urlConnection = url.openConnection();
       if (urlConnection != null) {
          _cookie = urlConnection.getHeaderField("set-cookie");
       }
       out.print("\n<br>Cookies: " + _cookie);
     
       connection = (HttpURLConnection)url.openConnection();
       connection.connect();
     
       out.print("\n<br>Testing : "+urlString);
       out.print("\n<br>ResponseCode="
            + connection.getResponseCode()
            + "\n<br>Response Message = "
            + connection.getResponseMessage()
       );
       try {
          InputStream inS;
          if (connection.getResponseCode() >= 400) {
             inS = connection.getErrorStream();
          } else {
             inS = connection.getInputStream();
          }
          BufferedReader in = new BufferedReader(
                                    new InputStreamReader(inS)
                                    );
          String inputLine;
          StringBuffer html = new StringBuffer("");
          out.print("<FIELDSET><LEGEND>Code Grabbed</LEGEND><XMP><font size=1>");
          while ((inputLine = in.readLine()) != null) {
                html.append(inputLine+"\n");
          }
          out.print(html.toString());
          out.print("</font></XMP></FIELDSET>");
          out.print("\n<br><hr>"+connection.getURL());
       } catch (MalformedURLException e){
          out.print("\n<br>MalformedURLException : "+e+" - "+e.getMessage());
       } catch (IOException e) {
          out.print("\n<br>IOException : "+e+" - "+e.getMessage());
       }
    %>
    si une bonne âme comprend le pourquoi du comment de ce comportement, j'aimerai bien qu'il me l'explique.

    Pour info j'ai créé un script en perl qui fait la même chose et qui marche très bien mais que je ne peux mettre en production ! c'est dommage mais ce n'est pas moi qui décide malheureusement
    le code qui marche en perl si ça peut aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    #!/usr/bin/perl
    use strict;
    print "Content-Type = text/html\n\n";
    require LWP::UserAgent;
     
    my $url2test ="http://monserveur/servlet/Servlet?form=TESTCONNEX&server=server.test.com&username=UserTest&pwd=UserTest";
     
    # Create a user agent object
    use LWP::UserAgent;
    use HTTP::Cookies;
    my $ua = LWP::UserAgent->new;
     
    $ua->cookie_jar(
                      HTTP::Cookies->new( file     => "lwpcookies.txt",
                                          autosave => 1
                                        )
                    );
    $ua->agent("Mozilla/8.0" . $ua->agent);
     
    # Create a request
    my $req = HTTP::Request->new (GET => $url2test);
    $req->header('Accept' => 'text/html');
     
    # Pass request to the user agent and get a response back
    my $res = $ua->request($req);
     
    # Check the outcome of the response
    if ($res->is_success) {
       my $content = $res->content;
       $content =~ s/&nbsp;/ /gi;
       if ($content =~ m/connexion ARS ok/i) {
          print "CONNEXION OK";
       } else {
          print "\n\nCONNEXION KO\n\n";
          print "<FIELDSET><LEGEND>Code</LEGEND><XMP>".$res->content."</XMP></FIELDSET>\n";
       }
    } else {
       print "Error: " . $res->status_line . "\n";
    }
    exit;

  2. #2
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    Et que te dis la trace du serveur... Si tu veux erreur 500 ca ne veut rien dire en soit.

    On ne vas pas te debugger ton code a ta place.

    Donc comment t'en sortir :

    - Regardes les traces de ton serveur d'application (je parirais sur un NullPointerException),
    - Sort tout le metier de ta JSP et mets le dans un objet Bean (exemple BeanUtil qui contiendrais une methode getParametrer...), cela te permettra, si tu utilises eclipse ou autre par exemple de pouvoir debugger pas à pas.

  3. #3
    Membre expérimenté Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut
    merci pour la réponse
    mon problème est que :
    1 - je ny connais pas grand chose en jsp/java
    2 - tous mes tests marchent sauf celui via la page jsp
    3 - je n'ai pas accès au servlet

    les erreurs que je récupère sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    type Rapport d'exception
     
    message 
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception 
     
    org.apache.jasper.JasperException org.apache.jasper.servlet.JspServletWrapper.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;Z)V(JspServletWrapper.java:372) org.apache.jasper.servlet.JspServlet.serviceJspFile(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;Ljava.lang.String;Ljava.lang.Throwable;Z)V(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(JspServlet.java:236) javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:802) 
     
    cause mère 
     
    java.lang.ArrayIndexOutOfBoundsException org.apache.jsp.shared.login_jsp._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(login_jsp.java:211) org.apache.jasper.runtime.HttpJspBase.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;Z)V(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;Ljava.lang.String;Ljava.lang.Throwable;Z)V(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(JspServlet.java:236) javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:802) 
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.0.30.
    sinon c'est sympa de me parler de bean mais mon inculture de ce coté là n'à d'égal que mon enervement devant ce truc qu'on me demande de faire alors que je n'y connais rien !

    merci de t'être intéressé à mon cas, mes recherches sur google commence à me fatiguer, je lis des tonnes de truc mais rien ne me semble correpondre à mon problème ni ne m'oriente vers un début de solution

  4. #4
    Membre émérite
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Par défaut
    A vu de nez,

    il te dit ArrayIndexOutOfBoundsException donc cela veut dire que tu essais d'accéder à un emplacement d'une Array qui n'existe pas.

    En y regardant de plus tu as une ligne ici :

    while ((inputLine = in.readLine()) != null)

    Es-tu sure que in est rempli à tous les coup?

    Bref mets des System.out.println dans ton code pour voir ou cela plante.

    Et enfin, si tu dis que cela fait 3 plombes que tu cherches partout.
    Vas ici :
    http://java.developpez.com/cours/#j2ee

    Tu verras que quand tu comprendras ce que tu fais, ca ira beaucoup plus vite (ca n'est jamais du temps de perdu).

  5. #5
    Membre expérimenté Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut
    Attention je n'y connais pas grand chose mais je comprend ce que je fais quand même

    le while ((inputLine = in.readLine()) != null) etc. me récupéère la sortie du servlet et me l'affiche bien. En fait il m'affiche la page d'erreur 500 générée.

    il doit manquer quelque chose au servlet qui l'empeche de s'executer correctement

    le HttpURLConnection accepte t'il la methode GET avec passage de parametre dans l'url ?

Discussions similaires

  1. .htaccess => error 500
    Par julien.63 dans le forum Apache
    Réponses: 2
    Dernier message: 09/09/2006, 19h30
  2. [mod_jk] integration tomcat apache, error 500
    Par peppena dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 10/02/2006, 10h01
  3. [SERVLET][STRUTS]Error 500--Internal Server Error
    Par Devil666 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/06/2005, 13h07
  4. [Servlet] error 500
    Par phoebe dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 06/05/2004, 12h37
  5. redirection impossible => error 500 !
    Par alfigor dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2004, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo