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 :

HttpURLConnection.getInputStream ( Unknown Source )


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut HttpURLConnection.getInputStream ( Unknown Source )
    Bonjour,

    Nouveau en programmation Java je rencontre un probleme lors de l'appel d'un servlet depuis un autre servlet qui se trouve sur un autre serveur.
    Pour cela je passe par le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    URL url = new URL(pPrintServer +  "/orbadm/servlets/oaedition");
    HttpURLConnection connection =(HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setUseCaches(false);
    connection.setDefaultUseCaches (false);
    PrintWriter writer = new PrintWriter(connection.getOutputStream());
    String lvParams="pParams=" + pParams + "&pEntryPath=" + pEntryPath;
    lvParams= lvParams  + "&pEditionType=" + pEditionType + "&pReportName=" + pReportName;
    lvParams= lvParams  + "&pCriteres=" + pCriteres;
    writer.write(lvParams);
    writer.close();
    connection.getInputStream();
    L'instruction connection.getInputStream() genere l'erreur suivante :

    java.io.IOException: Server returned HTTP response code: 500 for URL: http://pprintserver/orbadm/servlets/servlet
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at servlets.Servlet.doPost(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1600)
    at java.lang.Thread.run(Unknown Source)
    Pour info, mes deux serveurs sont sur le même domaine je peux acceder au content-length et content-type, j'utilise tomcat 6, java 1.6 sur les deux serveurs.

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour

    Est-ce que vous êtes sûr de l'URL envoyé ?
    Vous avez peut être un autre moyen de la testée(wget,navigateur ) ?
    Essayer peut être de logger l'URL ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut
    Bonjour,

    Merci d'avoir repondu.
    Oui la/les adresses sont correctes, je peux acceder à mes servlets depuis un formulaire HTML.
    Une petite precision c'est le même servlet qui est posé sur deux serveurs differents si le parametre pPrintServer est renseigné je fais appel au second servlet sinon je renvois directement un "buffer" html.
    Le cas qui pose probleme c'est quand pPrintServer est renseigné, je ne peux pas recuperer le "buffer" html en utilisant getInputStream ....
    je seche....

  4. #4
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Et à quoi correspondent pPrintServer et ce buffer ?
    Essayez svp de donner le max d'info .merci



  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut
    Ci-dessous la fonction post de mon servlet.
    Depuis un web browser je fais appel à mon premier servlet,en lui passant un parametre pPrintServer.
    Si ce parametre est vide c'est ce servlet qui doit me donner la reponse au format HTML (ce que j'appellais precemment buffer "html"),si elle n'est pas vide je vais appel à mon second servlet ,qui se trouve sur un autre serveur qui doit alors me renvoyer la reponse au format HTML.

    C'est donc le second cas qui ne fonctionne pas.

    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
     
    public void doPost(
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws ServletException, IOException {
     
    			String pParams = request.getParameter("pParams");
    			String pReportName = request.getParameter("pReportName");
    			String pEntryPath = request.getParameter("pEntryPath");
    			String pEditionType = request.getParameter("pEditionType");
    			String pCriteres = request.getParameter("pCriteres");
    			String pPrintServer = request.getParameter("pPrintServer");
    			if(pPrintServer.isEmpty())
    			{
    				response.setContentType("text/html");
    				PrintWriter out = response.getWriter();
    				out.println("<html>");
    				out.println("<head>");
    				out.println("<title>JasperReports - Web Application Sample</title>");
    				out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"../stylesheet.css\" title=\"Style\">");
    				out.println("</head>");
    				out.println("<body bgcolor=\"white\">");
    				out.println("<span class=\"bold\">");
    				out.println(pPrintServer);
    				out.println("</span>");
    				out.println("</body>");
    				out.println("</html>");
    				out.close();
    			}
    			else
    			{
     
    					URL url = new URL(pPrintServer +  "/orbadm/servlets/oaedition");
    					HttpURLConnection connection =(HttpURLConnection) url.openConnection();
    					connection.setRequestMethod("POST");
    					connection.setDoOutput(true);
    					//connection.setDoInput(true);
    					connection.setUseCaches(false);
    					connection.setDefaultUseCaches (false);
    					PrintWriter writer = new PrintWriter(connection.getOutputStream());
    					//OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
    					String lvParams="pParams=" + pParams + "&pEntryPath=" + pEntryPath;
    					lvParams= lvParams  + "&pEditionType=" + pEditionType + "&pReportName=" + pReportName;
    					lvParams= lvParams  + "&pCriteres=" + pCriteres;
    					writer.write(lvParams);
    					writer.close();
    					InputStream in = connection.getInputStream();
    					byte[] buf = new byte[512];
    					int length=0;
    					while ((in != null) && ((length = in.read(buf)) != -1))
    					{
    						outputStream.write(buf,0,length);
    					}
     
     
    			}
    }

  6. #6
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Quand je lis la la javadoc j'ai l'impression que dans votre code il manque l'appel à la méthode connect()


    http://download.oracle.com/javase/6/...onnection.html


    1. The connection object is created by invoking the openConnection method on a URL.
    2. The setup parameters and general request properties are manipulated.
    3. The actual connection to the remote object is made, using the connect method.
    4. The remote object becomes available. The header fields and the contents of the remote object can be accessed.

    The setup parameters are modified using the following methods:

    • setAllowUserInteraction
    • setDoInput
    • setDoOutput
    • setIfModifiedSince
    • setUseCaches

    and the general request properties are modified using the method:

    • setRequestProperty

    Default values for the AllowUserInteraction and UseCaches parameters can be set using the methods setDefaultAllowUserInteraction and setDefaultUseCaches.
    Each of the above set methods has a corresponding get method to retrieve the value of the parameter or general request property. The specific parameters and general request properties that are applicable are protocol specific.
    The following methods are used to access the header fields and the contents after the connection is made to the remote object:

    • getContent
    • getHeaderField
    • getInputStream
    • getOutputStream

    donc avant le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connection.getOutputStream();
    il faudrait rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    connection.connect();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. HttpURLConnection . getInputStream(Unknown Source)
    Par adrien1 dans le forum Applets
    Réponses: 1
    Dernier message: 01/10/2010, 02h17
  2. erreur unknown source
    Par Methode dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 13/11/2007, 18h27
  3. pb "java.util.Arrays.mergeSort(Unknown Source)"
    Par kamalkam dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 08/05/2006, 12h38
  4. [Eclipse][JBOSS] (Unknown Source) dans la trace
    Par seb55555 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/10/2005, 11h32
  5. [JVM]plus de 'Unknown Source'
    Par Tiaps dans le forum Général Java
    Réponses: 3
    Dernier message: 07/06/2005, 17h25

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