2009-12-19 15 views
7

Defino una clase y luego instalo un objeto de ese tipo de clase. Deseo enviar este objeto a otra aplicación Java que se ejecute en una computadora diferente de forma transparente. ¿Cuál es la mejor tecnología para lograr esto?Enviar un objeto por Internet

+2

¿Quiere decir como - satélite, Internet o radio AM/FM? O si no, ¿podemos ver la clase? Danos código amigo! \ o/¡Cualquier cosa! Mientras siga en movimiento, un poco ... – 0scar

+0

BTW, solicitó la mejor tecnología para realizar su pregunta, no el código de muestra, cómo hacerlo. Es por eso que obtuviste 3 respuestas para las tecnologías a usar. Si desea un código de muestra, solicite un código de muestra y se le proporcionará un código de muestra de varias personas sobre cómo hacerlo utilizando diferentes tecnologías o utilizando el mismo, pero tendría más para elegir. –

Respuesta

7

puede crear secuencias de objetos utilizando la API de Java y enviar cualquier objeto serializable. pero usted tiene que recordar que estos van sin cifrar a través de la red:

en el lado del remitente:

CustomObject objectToSend=new CustomObject(); 
Socket s = new Socket("yourhostname", 1234); 
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()); 
out.writeObject(objectToSend); 
out.flush(); 

y en el extremo receptor:

ServerSocket server = new ServerSocket(1234); 
Socket s = server.accept(); 
ObjectInputStream in = new ObjectInputStream(s.getInputStream()); 
CustomObject objectReceived = (CustomObject) in.readObject(); 
6

Hay muchas maneras de hacerlo. Aquí hay algunas cosas que debe considerar y puede elegir la que mejor funcione para su aplicación.

  • J2EE
  • RMI
  • serialización
  • objeto empujando los bits sobre un zócalo
  • Webservices

Casi cualquier marco de comunicación le permitirá introducir objetos en una red de una manera u otro. Solo necesita revisarlos y ver qué funciona para su aplicación. Un google rápido debería encontrar aún más métodos.

2

A (de facto) norma implementar esto sería usar un servicio web , por ejemplo usando JAX-WS que se incluye en Java 6. Consulte this tutorial para obtener una muestra de Java por primera vez (es decir, usando anotaciones). Esto es bastante directo y fácil.

Hay otros enfoques, como Serialization más de un Socket, RMI, EJB, pero, cuando se trabaja a través de Internet, servicios web son un tipo de opción natural ya que se basan en los estándares existentes (SOAP, HTTP) y tratar fácilmente con los cortafuegos (que podría ser un problema real para todas las demás soluciones).

1

Java proporciona serialización de objetos (binarios) utilizando ObjectOutputStream (y ObjectInputStream). Puede simplemente writeObject() en la secuencia y readObject() en el otro extremo. Todo lo que necesita hacer para que esto funcione es implementar la interfaz Serializable.

Pero en lugar de hacerlo manualmente, puede interesarle subir un nivel y usar Invocación de método remoto. Con RMI puede llamar a métodos en objetos que viven en otra JVM, y toda la serialización y la interconexión se realizan bajo el capó.

Y para completar, también hay serialización de beans XML, si no puede usar el formato binario. Ese formato XML es muy genérico (léase: prolijo y feo), pero hay algunas bibliotecas populares (como XStream) que crean serializaciones XML alternativas.

Cuestiones relacionadas