Pour un client, je dois écrire une servlet qui peut imprimer des valeurs dans un formulaire. Le formulaire est hébergé sur un autre serveur et ressemble un peu à ceci:Le poste de formulaire tomcat intersite ne fonctionne pas
<form action="http://myserver/myServlet" method="POST">
<input type="text" id="someName" value="someInterestingValue"/>
<input type="submit" value="submit" />
</form>
J'ai un Tomcat 5.0.28 serveur disponible, en cours d'exécution sur un JDK Java 1.4, donc je fait une servlet simple:
public class ProxyServlet extends HttpServlet {
public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
Enumeration a =req.getAttributeNames();
while (a.hasMoreElements()){
String attrname = (String) a.nextElement();
out.println(attrname+"="+req.getAttribute(attrname)+"<br/>");
}
out.close();
}
}
Quand je vais à la servlet par URL tout ressemble comme prévu. Lorsque j'envoie une requête GET avec certains paramètres, je peux les voir en tant qu'attributs dans le débogueur dans la méthode doGet() (la méthode a été omise).
Cependant, dans le doPost(), mes champs de formulaire semblent être manquants. J'ai regardé dans les fichiers journaux Tomcat, et rien de spécial n'est enregistré. J'ai essayé d'ajouter un fichier crossdomain.xml à certains répertoires, mais je n'ai pas trouvé un moyen de modifier ce comportement. Donc, pour être clair: Le formulaire indiqué ci-dessus est sur le serveur A. Mon servlet fonctionne sur une ancienne application Tomcat/Java existante hébergée sur le serveur B. Lorsque le formulaire est de type "POST", aucun des champs n'arrive à le Servlet sur le serveur B. Apache n'est PAS "en face" de Tomcat.
Y a-t-il des paramètres de configuration qui me manquent dans Tomcat? Des conseils ou des suggestions où chercher? L'aide est grandement appréciée.
Ah, ça m'a aussi manqué. Cela aurait été trop évident oui. Cela aurait été plus utile si vous aviez réellement dit que le truc 'getParameter()' ne fonctionnait pas non plus. Néanmoins heureux que vous l'ayez résolu vous-même. – BalusC
Oui, mon mauvais, j'avais le code de getParameter() à l'origine mais j'ai pensé que je pourrais le perdre pour rendre la question un peu plus courte. – Rolf