Problème communication applet / servlet (struts)
Bonjour,
J'essaie de faire communiquer mon applet avec une action struts. Le problème c'est que j'ai l'impression que ma servlet n'est jamais appelée car j'ai mis des logger à l'intérieur et je ne retrouve pas les traces...
Voici le code de mon applet:
Code:
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
| private URLConnection getServletConnection()
throws MalformedURLException, IOException {
// Connection servlet
URL urlServlet = new URL("http://localhost:8080/HelloDMP-web/creationDMP.action");
URLConnection con = urlServlet.openConnection();
// configuration
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
return con;
}
public void onSendData() {
try {
// send data to the servlet
URLConnection con = getServletConnection();
OutputStream outstream = con.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstream);
oos.writeObject(new String("1234"));
oos.flush();
oos.close();
// receive result from servlet
InputStream instr = con.getInputStream();
ObjectInputStream inputFromServlet = new ObjectInputStream(instr);
String result = (String) inputFromServlet.readObject();
inputFromServlet.close();
instr.close();
// show result
System.out.println("Result servlet: " + result);
} catch (Exception ex) {
ex.printStackTrace();
}
} |
Celui de ma servlet:
Code:
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
public class CreationDMPAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private static Logger log = Logger.getLogger(CreationDMPAction.class);
private static final String ERROR_SESSION = "error_session";
private UserCarteCps userCarteCps;
private ICpsService cpsService;
public ICpsService getCpsService() {
return cpsService;
}
public void setCpsService(ICpsService cpsService) {
this.cpsService = cpsService;
}
public UserCarteCps getUserCarteCps() {
return userCarteCps;
}
public void setUserCarteCps(UserCarteCps userCarteCps) {
this.userCarteCps = userCarteCps;
}
/*@TypeConversion(converter = "com.enovation.dmp.util.DateConverter")
@RequiredFieldValidator(message = "Please enter the date")
public void setDateNow(Date now) { this.now = now; }
public Date getDateNow() { return now; }
@RequiredStringValidator(message = "Please enter a name", trim = true)
public void setNom(String name) { this.nom = name; }
public String getNom() { return this.nom; }
*/
public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
try {
log.info("****************entree dans la méthode doPost*****************");
// read a String-object from applet
// instead of a String-object, you can transmit any object, which
// is known to the servlet and to the applet
InputStream in = request.getInputStream();
ObjectInputStream inputFromApplet = new ObjectInputStream(in);
String echo = (String) inputFromApplet.readObject();
log.info("****************Message applet" +echo);
// echo it to the applet
OutputStream outstr = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstr);
oos.writeObject(echo);
oos.flush();
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
try {
log.info("****************entree dans la méthode doGet*****************");
// read a String-object from applet
// instead of a String-object, you can transmit any object, which
// is known to the servlet and to the applet
InputStream in = request.getInputStream();
ObjectInputStream inputFromApplet = new ObjectInputStream(in);
String echo = (String) inputFromApplet.readObject();
log.info("****************Message applet" +echo);
// echo it to the applet
OutputStream outstr = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(outstr);
oos.writeObject(echo);
oos.flush();
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public String execute(HttpServletRequest request,HttpServletResponse response) throws Exception {
log.info("****************entree dans la méthode execute*****************");
String retour = SUCCESS;
try {
/*cpsService.isConnecte();
if (userCarteCps != null && userCarteCps.getIdentifiant() != null) {
retour = SUCCESS;
} else {
addActionError(getText("erreur.login.session"));
retour = ERROR_SESSION;
}*/
} catch (Exception e) {
addActionError(getText("erreur.login.session"));
retour = ERROR_SESSION;
}
return retour;
}
} |
Et voici le message d'erreur:
java.io.streamcorruptedexception invalid stream header 3C21444F
La ligne concernée est ObjectInputStream inputFromServlet = new ObjectInputStream(instr);