Consumir RESTful WebService CRUD en aplicación JavaFX
Éste es un demo de cómo interactuar con una BBDD remota mediante un WebService, en concreto un servicio RESTful. Las tecnologías usadas son:
- JAXB
- JAX-RS (implementación corre por servidor)
- Jersey client (para el cliente REST)
- JPA 2.1 (persistencia de datos)
- Hibernate 4.x (implementación de JPA 2.1)
- PostgreSQL 9.4.1 como SGBD
- WildFly 8.2.0
NOTA: Si van a utilizar GlassFish 4.x, necesitan usar Hibernate 4.3.5 en lugar de 4.3.8, ya que se conocen conflictos entre ambos.
En el pom.xml, reemplazar:
Código
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.5.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.5.Final</version> </dependency>
La aplicación consta de 2 partes: La aplicación web, donde esté levantado el servicio REST y el cliente que lo consume, construido con JavaFX.
La aplicación consta básicamente de un CRUD de clientes, que será llevada a cabo por el REST utilizando para ésto EJB's como servicios de acceso a la BBDD mediante JPA.
De ésta manera, varios clientes pueden consumir el REST y hacer un CRUD sin necesidad de tener instalada una BBDD (como ocurre generalmente con los sistemas de escritorio normales).
Imágenes







Demo
Código fuente
Todo el código así como los WAR y JAR están en mi cuenta de Github: REST-FX-CustomersApp.