¿Quieres obtener los datos del servidor en el cliente?
Lo puedes hacer con un WebService REST.
Creamos un EJB que hace el CRUD:
@LocalBean
@Singleton
public class ProductManager {
@PersistenceContext(unitName="NOMBRE_DE_PERSISTENCIA-EN_PERSISTENCE.XML")
private EntityManager em;
public List<Product> findAll() {
List<Product> products;
try {
TypedQuery<Product> query = em.createQuery("SELECT p FROM Products p");
products = query.getResultList();
ex.printStackTrace();
}
return products;
}
public Product find(int id) {
return em.find(Product.class, id);
}
}
Luego, en nuestro RESTful, usamos el EJB para obtener los datos de la BBDD:
@Path("/products")
public class ProductsService {
@Inject private ProductManager manager;
@GET
@Path("/products/all")
@Procudes("application/json")
public List<Product> findAll() {
return manager.findAll();
}
@POST
@Path("/products/edit/{i}")
public String edit
(@PathParam
("i") int id
) { Product product = (Product) manager.find(id);
// crear un formulario que tenga los datos del producto y lo devolvemos
return editProduct;
}
@GET
@Path("/products/{i}")
@Produces("application/json")
public Product find(@PathParam("i") int id) {
return manager.find(id);
}
}
@Path de la clase indica la ruta base del servicio y los
@Path de los métodos las rutas siguientes al de la clase.
@Produces("application/json"), indica que la llamada a dicho método devolverá la lista de productos en formato JSON.
@GET, @POST, son los tipos de peticiones.
Cuando un
@Path tiene un parámeto, se debe colocar entre llaves:
{i} y para acceder a él desde el método usamos la anotación
@PathParams("i"), que indica que dicho parámetro del método es el parámetro enviado en la URL.
Por ejemplo, para obtener el producto con índice 5, haríamos:
http://tudominio:puerto/productos/5
Para obtener todos los productos:
http://tudominio:puerto/products
Esa es la manera más sencilla de obtener datos del servidor. Los clientes solo en su aplicación acceden al producto deseado e internamente debe llamar a dicha URL, obtener los datos en JSON y mostrarlos por ejemplo en una tabla.
En el ejemplo he usado tecnologías como RESTful (Jersey), EJB y JPA. Aunque al principio te parezca complicado, si logras enterderlo, vas a poder simplificar mucho trabajo.
Un saludo.