2009-11-30 7 views
1

Je construis un projet dans GWT qui tire un flux rss, exécute des expressions régulières sur le flux (en javascript en utilisant JSNI), puis stocke ces données dans une base de données où les utilisateurs peuvent accéder il.Interaction GWT côté serveur avec la base de données

En ce moment, j'ai écrit tout le code dans le fichier .java côté client en espérant que je pourrais simplement le transférer vers le serveur. Comment puis-je déplacer une partie du code vers le côté serveur du projet? Le code que j'ai maintenant est trop volumineux pour être exécuté du côté client donc je l'aime pour l'exécuter côté serveur et stocker les résultats dans une base de données. Est-il conseillé d'écrire le code côté serveur en utilisant GWT ou devrait-il être fait avec un autre framework ou peut-être PHP? Je voudrais idéalement développer l'ensemble du projet avec GWT, car cela a vraiment bien fonctionné pour moi jusqu'à présent.

J'ai également eu du mal à trouver les ressources dont j'ai besoin pour me connecter à la base de données et le mettre à jour, côté serveur de GWT. Puis-je le faire avec Hibernate?

Merci beaucoup!

Répondre

2

Semble à moi comme vous pourriez exécuter le tout sur le côté serveur et ne pas utiliser GWT.

Si vous souhaitez effectuer votre traitement sur le client, vous devez soumettre les résultats à un serveur via HTTP, probablement sous forme de texte.

Vous pouvez le faire avec GWT RPC, une requête HTTP utilisant RequestBuilder ou enfin utiliser un FormPanel contenant un champ masqué. GWT RPC signifie que vous devez écrire votre code côté serveur en Java. Les deux autres approches peuvent être n'importe quelle plate-forme qui parle HTTP: PHP, Python, .NET ...

NB: JSNI est puissant mais on pourrait soutenir que vous jetez la puissance de GWT - c'est-à-dire, la capacité écrire du code côté client en Java.

1

S'il s'exécute dans GWT alors il s'exécute en Java (presque): s'il ne s'agit pas directement de widgets ou de JavaScript (via JSNI). Évidemment, vous ne voulez aucun code qui traite des widgets ou JSNI sur un serveur de toute façon.

Alors allez-y et déplacez-le. Pour communiquer vous utiliserez GWT-RPC - votre code serveur fonctionne simplement comme une servlet avec toutes les servlets puissantes Java, y compris la possibilité d'utiliser Hibernate, d'autres frameworks Java. Votre code serveur reste dans l'application GWT mais n'est ni traduit en JavaScript, ni déployé sur un client.

La meilleure ressource sur l'architecture des applications GWT est here.

+0

Oui, vous devriez simplement pouvoir ajouter un service rpc - quelques définitions d'interface et une implémentation de méthode. Vous pouvez utiliser JDBC brut côté serveur si la base de données est suffisamment simple, mais si vous commencez à gérer des relations et à écrire beaucoup de code CRUD, passez à Hibernate ou à quelque chose de similaire. –