Pb interpretation ajax serveur tomcat

hel2013 -  
 REplay -
Bonjour,

J'ai un problème, lorsque je lance mon serveur tomcat 5028 via la commande startup.bat en ayant préalablement déposé mon projet dans le webapps de mon serveur l'ajax n'est plus interprété alors que la requête est bien envoyée vers la servlet (vérifiée avec firebug) mais celle ci ne me renvoie pas la réponse escomptée, au lieu de ça elle me renvoie le code de la page appelante : Index dans l'alert.

Ce problème n'intervient pas lorsque je lance mon serveur sous eclipse la j'obtient bien les deux points d'interrogation. Par contre sous eclipse mon projet ne fonctionne pas correctement à cause de DataSource (je n'etendrai pas plus ce problème).


Appel javascript :

Code :

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="bean.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Index</title>
<script src="js/fonc.js" type="text/javascript"></script>

<script type="text/javascript">

var httpRequest = null;

function callSync() {

if(window.XMLHttpRequest) // FIREFOX
httpRequest = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);

if ( httpRequest != null ){
// appel de componentsExplorer.do
var req = "Liste_compteServlet?code=??";
httpRequest.open("GET", req, true);
httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpRequest.send(null);
// récupération des resultats
httpRequest.onreadystatechange = getComponentsDetails;
}
}


function getComponentsDetails() {
if ( parseInt(httpRequest.readyState) == 4 ) {
// on recupere le resultat des traitements realises
var detailPackage = httpRequest.responseText;
alert("coucou");
// on modifie l'affichage
alert(detailPackage);
}
}

</script>

<link type="text/css" rel="stylesheet" href="style.css" />
</head>

<body>
<%
String jsp = ((String)application.getAttribute("jsp"));
if(jsp==null) {
out.println("<body>");
}
else {
out.println("<body onload=\"javascript:submitForm('"+jsp+"');\">");
}
%>
<div id="site">

<div id="header">
<div id="text_header">Projet 3</div>
<ul id="navbar">
<li><a href="javascript:submitForm('accueil.html');">Accueil</a></li>
</ul>
</div>
<div id="left"><div id="left_haut">
<h3>Services</h3></div>
<div id="leftbk"> <a href="javascript:callSync();">liste_compte</a><br /> <a href="Liste_compte_chequeServlet">liste_compte_cheque</a><br /> <a href="Liste_operationServlet">liste_operation</a><br /></div><div id="left_bas"></div><div id="left_haut"><h3>Aide</h3></div><div id="leftbk"><a href="javascript:submitForm('aide.html');">Aide telogen</a></div><div id="left_bas"></div></div><div id="right"><div id="right_haut"></div><div id="rightbk"></div><div id="right_bas"></div></div><div id="footer"><p>Telogen - Université de Nantes © 2007</p></div></div></body>
</html>


Servlet de réponse :


Code :


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
String code = request.getParameter("code");
String s = code;
out.println(s);
System.out.println("coucou");
}


Voila si vous avez un début de piste

Merci d'avance
A voir également:

2 réponses

youssefb Messages postés 16 Statut Membre
 
Peux tu verifier si de ton coté :

var req = "Liste_compteServlet?code=??";

Est bien la page vers laquelle tu souhaite faire la requete.

Le faite que tu obtienne une execution de ta servlet ne veux pas dire que ton serveur qui interprete le jsp a été executé lui.
0
REplay
 
Bonjour,
Tu devrais ajouter à la ligne:
httpRequest = new XMLHttpRequest();
ceci:
httpRequest.overrideMimeType('text/xml');

Il se peut que ton serveur ne renvoie pas une en-tête mime-type, dans tous les cas cette fonction écrase l'entête reçue.
Et effectivement, dans ta variable req, je ne comprend pas trop le "code=??".
Sinon je ne vois pas d'où cela peut venir.
++
0