Deseo enviar un objeto serializado de una clase Java a un servlet donde el servlet debe recuperar y guardar el objeto como un archivo. Soy consciente de que tengo que usar HttpURLConnection para hacer una solicitud POST a un servlet, pero no sé si el siguiente código es correcto.¿Cómo se usa HttpURLConnection para enviar un objeto serializado a un Servlet de la clase Java?
private static HttpURLConnection urlCon;
private static ObjectOutputStream out;
public static void main(String[] args) {
Names names = new Names();
names.setName("ABC");
names.setPlace("Bangalore");
URL url;
try {
url = new URL("http://localhost:6080/HttpClientSerializable/HttpPostServlet");
try {
out = (ObjectOutputStream) urlCon.getOutputStream();
out.writeObject(names);
urlCon = (HttpURLConnection) url.openConnection();
urlCon.setRequestMethod("POST");
urlCon.setDoOutput(true);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
}
Y en el servlet, tengo el siguiente código:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ObjectInputStream in = new ObjectInputStream(request.getInputStream());
try {
names = (Names) in.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
in.close();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("C:/Documents and Settings/RAGASTH/Desktop/Names"));
out.writeObject(names);
out.close();
}
¿Qué debo hacer para que funcione? Además, quiero que el servlet envíe de vuelta el objeto que recibe como respuesta.
Cualquier ayuda sería apreciada. ¡Gracias!
¿Por qué no sólo tiene que utilizar JSON o XML como formato de transferencia de datos? – BalusC
Utilicé la biblioteca 'Gson' y funcionó bien. Solo quería probar el envío de objetos serializados. – Rajath
Espero que aproveche sus principales desventajas lo suficientemente pronto. A menudo solo expone a largo plazo. – BalusC